diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index ed36a1a3b1..1bb9c63db5 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -2323,14 +2323,15 @@ Route::set_processor_state (const XMLNode& node) continue; } - processor->set_state (**niter, Stateful::current_state_version); - new_order.push_back (processor); - must_configure = true; + if (processor->set_state (**niter, Stateful::current_state_version) == 0) { + new_order.push_back (processor); + must_configure = true; + } } } } - { + { Glib::RWLock::WriterLock lm (_processor_lock); _processors = new_order; if (must_configure) {