Index: /source/ariba/overlay/BaseOverlay.cpp
===================================================================
--- /source/ariba/overlay/BaseOverlay.cpp	(revision 5553)
+++ /source/ariba/overlay/BaseOverlay.cpp	(revision 5554)
@@ -205,5 +205,5 @@
 }
 
-LinkDescriptor* BaseOverlay::getSendDescriptor( const NodeID& nodeid ) {
+LinkDescriptor* BaseOverlay::getSendDescriptor( const NodeID& nodeid, bool follow ) {
 	for (size_t i=0; i<links.size(); i++)
 		if ( !links[i]->relay &&
@@ -216,6 +216,6 @@
 		}
 	LinkDescriptor* ld = getDescriptor(overlayInterface->getNextLinkId(nodeid));
-	if (ld != NULL && ld->relay)
-		return getRelayDescriptor(ld->localRelay);
+	if (ld != NULL && ld->relay && follow)
+		return getSendDescriptor(ld->localRelay, false);
 	return NULL;
 }
Index: /source/ariba/overlay/BaseOverlay.h
===================================================================
--- /source/ariba/overlay/BaseOverlay.h	(revision 5553)
+++ /source/ariba/overlay/BaseOverlay.h	(revision 5554)
@@ -420,5 +420,5 @@
 	seqnum_t sendMessage( Message* message, const LinkDescriptor* ld );
 
-	LinkDescriptor* getSendDescriptor( const NodeID& nodeid );
+	LinkDescriptor* getSendDescriptor( const NodeID& nodeid, bool follow = false );
 
 	/// routes a message over the overlay or directly sends it when a link is open
