diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc index d172db5a98..3e4cc1e094 100644 --- a/libs/ardour/session_state.cc +++ b/libs/ardour/session_state.cc @@ -1209,7 +1209,7 @@ Session::state (bool save_template, snapshot_t snapshot_type, bool only_used_ass /* store the last engine device we we can avoid autostarting on a different device with wrong i/o count */ boost::shared_ptr backend = _engine.current_backend(); - if (_engine.running () && backend) { + if (_engine.running () && backend && _engine.setup_required ()) { child = node->add_child ("EngineHints"); child->set_property ("backend", backend-> name ()); if (backend->use_separate_input_and_output_devices()) { @@ -4585,6 +4585,11 @@ Session::get_info_from_path (const string& xmlpath, float& sample_rate, SampleFo std::string version; program_version = ""; + if (engine_hints) { + /* clear existing properties */ + *engine_hints = XMLNode ("EngineHints"); + } + if (!Glib::file_test (xmlpath, Glib::FILE_TEST_EXISTS)) { return -1; }