Index: source/ariba/overlay/BaseOverlay.cpp
===================================================================
--- source/ariba/overlay/BaseOverlay.cpp	(revision 5274)
+++ source/ariba/overlay/BaseOverlay.cpp	(revision 5284)
@@ -185,5 +185,5 @@
 	// route message using overlay
 	else {
-		logging_error("Could not send message");
+		logging_error("Could not send message descriptor=" << ld );
 		logging_debug( "sendMessage: Routing message to node " << ld->remoteNode.toString() );
 		overlayInterface->routeMessage( ld->remoteNode, message );
@@ -689,5 +689,5 @@
 
 void BaseOverlay::onLinkUp(const LinkID& id,
-	const NetworkLocator* local, const NetworkLocator* remote) {
+	const address_v* local, const address_v* remote) {
 	logging_debug( "Link up with base communication link id=" << id );
 
@@ -740,4 +740,5 @@
 		// if link is a relayed link ->convert to direct link
 		if (ld->relay) {
+			logging_force( "Converting to direct link: " << ld );
 			ld->up = true;
 			ld->relay = false;
@@ -756,5 +757,5 @@
 
 void BaseOverlay::onLinkDown(const LinkID& id,
-	const NetworkLocator* local, const NetworkLocator* remote) {
+	const address_v* local, const address_v* remote) {
 
 	// get descriptor for link
@@ -780,6 +781,6 @@
 
 void BaseOverlay::onLinkChanged(const LinkID& id,
-	const NetworkLocator* oldlocal, const NetworkLocator* newlocal,
-	const NetworkLocator* oldremote, const NetworkLocator* newremote) {
+	const address_v* oldlocal, const address_v* newlocal,
+	const address_v* oldremote, const address_v* newremote) {
 
 	// get descriptor for link
@@ -797,5 +798,5 @@
 
 void BaseOverlay::onLinkFail(const LinkID& id,
-	const NetworkLocator* local, const NetworkLocator* remote) {
+	const address_v* local, const address_v* remote) {
 	logging_debug( "Link fail with base communication link id=" << id );
 
@@ -813,6 +814,6 @@
 }
 
-void BaseOverlay::onLinkQoSChanged(const LinkID& id, const NetworkLocator* local,
-	const NetworkLocator* remote, const QoSParameterSet& qos) {
+void BaseOverlay::onLinkQoSChanged(const LinkID& id, const address_v* local,
+	const address_v* remote, const QoSParameterSet& qos) {
 	logging_debug( "Link quality changed with base communication link id=" << id );
 
@@ -826,7 +827,7 @@
 }
 
-bool BaseOverlay::onLinkRequest( const LinkID& id, const NetworkLocator* local,
-	const NetworkLocator* remote ) {
-	logging_debug("Accepting link request from " << remote->toString() );
+bool BaseOverlay::onLinkRequest( const LinkID& id, const address_v* local,
+	const address_v* remote ) {
+	logging_debug("Accepting link request from " << remote->to_string() );
 	return true;
 }
@@ -1358,4 +1359,5 @@
 		case OverlayMsg::typeDirectLink: {
 			LinkDescriptor* rld = getDescriptor( overlayMsg->getRelayLink() );
+			logging_force( "Received direct link convert notification for " << rld );
 			rld->communicationId = ld->communicationId;
 			rld->communicationUp = true;
Index: source/ariba/overlay/BaseOverlay.h
===================================================================
--- source/ariba/overlay/BaseOverlay.h	(revision 5274)
+++ source/ariba/overlay/BaseOverlay.h	(revision 5284)
@@ -118,4 +118,6 @@
 namespace overlay {
 
+using namespace ariba::addressing;
+
 class LinkDescriptor;
 
@@ -285,12 +287,12 @@
 	 * @see ariba::communication::CommunicationEvents.h
 	 */
-	virtual void onLinkUp(const LinkID& id, const NetworkLocator* local,
-		const NetworkLocator* remote);
-
-	/**
-	 * @see ariba::communication::CommunicationEvents.h
-	 */
-	virtual void onLinkDown(const LinkID& id, const NetworkLocator* local,
-		const NetworkLocator* remote);
+	virtual void onLinkUp(const LinkID& id, const address_v* local,
+		const address_v* remote);
+
+	/**
+	 * @see ariba::communication::CommunicationEvents.h
+	 */
+	virtual void onLinkDown(const LinkID& id, const address_v* local,
+		const address_v* remote);
 
 	/**
@@ -298,12 +300,12 @@
 	 */
 	virtual void onLinkChanged(const LinkID& id,
-		const NetworkLocator* oldlocal, const NetworkLocator* newlocal,
-		const NetworkLocator* oldremote, const NetworkLocator* newremote);
-
-	/**
-	 * @see ariba::communication::CommunicationEvents.h
-	 */
-	virtual void onLinkFail(const LinkID& id, const NetworkLocator* local,
-		const NetworkLocator* remote);
+		const address_v* oldlocal, const address_v* newlocal,
+		const address_v* oldremote, const address_v* newremote);
+
+	/**
+	 * @see ariba::communication::CommunicationEvents.h
+	 */
+	virtual void onLinkFail(const LinkID& id, const address_v* local,
+		const address_v* remote);
 
 	/**
@@ -311,5 +313,5 @@
 	 */
 	virtual void onLinkQoSChanged(const LinkID& id,
-		const NetworkLocator* local, const NetworkLocator* remote,
+		const address_v* local, const address_v* remote,
 		const QoSParameterSet& qos);
 
@@ -317,6 +319,6 @@
 	 * @see ariba::communication::CommunicationEvents.h
 	 */
-	virtual bool onLinkRequest(const LinkID& id, const NetworkLocator* local,
-		const NetworkLocator* remote);
+	virtual bool onLinkRequest(const LinkID& id, const address_v* local,
+		const address_v* remote);
 
 	/**
Index: source/ariba/overlay/LinkDescriptor.h
===================================================================
--- source/ariba/overlay/LinkDescriptor.h	(revision 5274)
+++ source/ariba/overlay/LinkDescriptor.h	(revision 5284)
@@ -128,4 +128,5 @@
 		s << "serv=" << service.toString() << " ";
 		s << "overId=" << overlayId.toString().substr(0,6) << " ";
+		s << "commUp=" << communicationUp << " ";
 		s << "commId=" << communicationId.toString().substr(0,6) << " ";
 		s << "usedAsRel=" << usedAsRelay << " ";
