diff --git a/libs/temporal/tempo.cc b/libs/temporal/tempo.cc index 338821950a..8ebaa52c20 100644 --- a/libs/temporal/tempo.cc +++ b/libs/temporal/tempo.cc @@ -2868,9 +2868,13 @@ TempoMap::twist_tempi (TempoSection* ts, const Tempo& bpm, const framepos_t fram void TempoMap::MementoBinder::set_state (XMLNode const & node, int version) const { + /* fetch a writable copy of this thread's tempo map */ TempoMap::SharedPtr map (write_copy()); + /* change the state of the copy */ map->set_state (node, version); + /* do the update step of RCU */ update (map); + /* now update this thread's view of the current tempo map */ fetch (); }