diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc index 9e46f38f6a..9f8d0808af 100644 --- a/libs/ardour/session.cc +++ b/libs/ardour/session.cc @@ -248,6 +248,8 @@ Session::destroy () _butler->drop_references (); delete _butler; + _butler = 0; + delete midi_control_ui; delete _all_route_group; diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc index 5fef402d9f..7c23e2aee7 100644 --- a/libs/ardour/session_transport.cc +++ b/libs/ardour/session_transport.cc @@ -1476,9 +1476,11 @@ Session::engine_halted () the picture. */ - g_atomic_int_set (&_butler->should_do_transport_work, 0); - set_post_transport_work (PostTransportWork (0)); - _butler->stop (); + if (_butler) { + g_atomic_int_set (&_butler->should_do_transport_work, 0); + set_post_transport_work (PostTransportWork (0)); + _butler->stop (); + } realtime_stop (false, true); non_realtime_stop (false, 0, ignored);