diff --git a/gtk2_ardour/rc_option_editor.cc b/gtk2_ardour/rc_option_editor.cc index 4a8ed4f840..d22ef625f2 100644 --- a/gtk2_ardour/rc_option_editor.cc +++ b/gtk2_ardour/rc_option_editor.cc @@ -723,6 +723,7 @@ private: ControlProtocolManager::instance().instantiate (*cpi); } else { ControlProtocolManager::instance().teardown (*cpi); + cpi->requested = false; } } diff --git a/libs/ardour/control_protocol_manager.cc b/libs/ardour/control_protocol_manager.cc index 6aa0c51da2..cce9fe08a1 100644 --- a/libs/ardour/control_protocol_manager.cc +++ b/libs/ardour/control_protocol_manager.cc @@ -169,6 +169,8 @@ ControlProtocolManager::teardown (ControlProtocolInfo& cpi) } cpi.protocol = 0; + delete cpi.state; + cpi.state = 0; dlclose (cpi.descriptor->module); return 0; }