diff --git a/libs/ardour/port.cc b/libs/ardour/port.cc index 63cc64aa89..72256090ff 100644 --- a/libs/ardour/port.cc +++ b/libs/ardour/port.cc @@ -566,6 +566,7 @@ Port::reconnect () for (std::set::iterator i = _connections.begin(); i != _connections.end(); ++i) { if (connect (*i)) { + _connections.clear (); return -1; } } diff --git a/libs/ardour/port_manager.cc b/libs/ardour/port_manager.cc index de4c972e2e..00df3ebecb 100644 --- a/libs/ardour/port_manager.cc +++ b/libs/ardour/port_manager.cc @@ -772,7 +772,9 @@ PortManager::reconnect_ports () DEBUG_TRACE (DEBUG::Ports, string_compose ("reconnect %1 ports\n", p->size())); for (Ports::iterator i = p->begin(); i != p->end(); ++i) { - i->second->reconnect (); + if (i->second->reconnect ()) { + PortConnectedOrDisconnected (i->second, i->first, boost::weak_ptr(), "", false); + } } return 0;