diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index 450bf2a..7e64523 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -381,8 +381,8 @@ AudioEngine::_connect_callback (jack_port_id_t id_a, jack_port_id_t id_b, int co
 
 	GET_PRIVATE_JACK_POINTER (ae->_jack);
 
-	jack_port_t* jack_port_a = jack_port_by_id (_priv_jack, id_a);
-	jack_port_t* jack_port_b = jack_port_by_id (_priv_jack, id_b);
+	string jack_port_a = jack_port_name (jack_port_by_id (_priv_jack, id_a));
+	string jack_port_b = jack_port_name (jack_port_by_id (_priv_jack, id_b));
 
 	boost::shared_ptr<Port> port_a;
 	boost::shared_ptr<Port> port_b;
@@ -390,17 +390,17 @@ AudioEngine::_connect_callback (jack_port_id_t id_a, jack_port_id_t id_b, int co
 	boost::shared_ptr<Ports> pr = ae->ports.reader ();
 	Ports::iterator i = pr->begin ();
 	while (i != pr->end() && (port_a == 0 || port_b == 0)) {
-		if (jack_port_a == i->second->jack_port()) {
+		if (jack_port_a == ae->make_port_name_non_relative (i->second->name())) {
 			port_a = i->second;
-		} else if (jack_port_b == i->second->jack_port()) {
+		} else if (jack_port_b == ae->make_port_name_non_relative (i->second->name())) {
 			port_b = i->second;
 		}
 		++i;
 	}
 
 	ae->PortConnectedOrDisconnected (
-		port_a, jack_port_name (jack_port_a),
-		port_b, jack_port_name (jack_port_b),
+		port_a, jack_port_a,
+		port_b, jack_port_b,
 		conn == 0 ? false : true
 		); /* EMIT SIGNAL */
 }
