Index: source/ariba/overlay/modules/OverlayInterface.cpp
===================================================================
--- source/ariba/overlay/modules/OverlayInterface.cpp	(revision 3699)
+++ source/ariba/overlay/modules/OverlayInterface.cpp	(revision 3705)
@@ -75,4 +75,5 @@
 bool OverlayInterface::onLinkRequest(const NodeID& remote,
 		const DataMessage& msg) {
+	return true;
 }
 
Index: source/ariba/overlay/modules/onehop/OneHop.cpp
===================================================================
--- source/ariba/overlay/modules/onehop/OneHop.cpp	(revision 3699)
+++ source/ariba/overlay/modules/onehop/OneHop.cpp	(revision 3705)
@@ -59,7 +59,11 @@
 	//
 	overlayNodes.insert( make_pair(_nodeid, LinkID::UNSPECIFIED) );
+
+	Timer::setInterval(5000);
+	Timer::start();
 }
 
 OneHop::~OneHop(){
+	Timer::stop();
 	deleteOverlay();
 }
@@ -155,5 +159,6 @@
 
 	//
-	// close all links, this will indicate the other nodes that we left
+	// send leave messages to all nodes. the nodes
+	// will then drop the links
 	//
 
@@ -162,6 +167,9 @@
 
 	for( ; i != iend; i++){
-		if( i->first != nodeid && i->second != LinkID::UNSPECIFIED )
-			baseoverlay.dropLink( i->second );
+		if( i->first != nodeid && i->second != LinkID::UNSPECIFIED ){
+
+			OneHopMessage msg (OneHopMessage::OneHopMessageTypeLeave);
+			baseoverlay.sendMessage( &msg, i->second );
+		}
 	}
 
@@ -177,5 +185,5 @@
 
 	// node went down, remove from overlay mapping
-	logging_debug( "node " << remote.toString() << " left overlay structure" );
+	logging_debug( "link " << lnk.toString() << " to node " << remote.toString() << " went down, removing node" );
 
 	OverlayNodeMapping::iterator i = overlayNodes.begin();
@@ -266,5 +274,5 @@
 		eventsReceiver->onNodeJoin( remote );
 
-	} // if( request != NULL )
+	} // OneHopMessageTypeListingRequest
 
 	//
@@ -312,11 +320,49 @@
 		} // for( ; i != iend; i++ )
 
-	} // if( reply != NULL )
+	} // OneHopMessageTypeListingReply
+
+	//
+	// handle node leaves
+	//
+
+	if( onemsg->isType(OneHopMessage::OneHopMessageTypeLeave) ){
+
+		logging_debug("received leave message from " <<
+				remote.toString() << " on link " << lnk.toString());
+
+		// drop the link to the node
+		baseoverlay.dropLink( lnk );
+
+	} // OneHopMessageTypeLeave
+
+	//
+	// handle kbr route messages
+	//
 
 	if( onemsg->isType( OneHopMessage::OneHopMessageTypeRoute) ){
 		logging_debug( "Route message arrived at destination node -> delegate to BaseOverlay" );
 		baseoverlay.incomingRouteMessage( onemsg );
-	}
-
+	} // OneHopMessageTypeRoute
+
+}
+
+void OneHop::eventFunction(){
+
+	logging_debug("<<<<<<<<<<<<<<<<onehop-table<<<<<<<<<<<<<<<<<<<");
+
+		OverlayNodeMapping::iterator i = overlayNodes.begin();
+		OverlayNodeMapping::iterator iend = overlayNodes.end();
+
+		for( ; i != iend; i++ ){
+
+			const NodeID node = i->first;
+			const LinkID link = i->second;
+			const EndpointDescriptor& endpoint = baseoverlay.getEndpointDescriptor( link );
+
+			logging_debug( 	"node: " << node.toString() <<
+							", link_: " << link.toString() << ", endp: " << endpoint.toString());
+		}
+
+	logging_debug(">>>>>>>>>>>>>>>>>onehop-table>>>>>>>>>>>>>>>>>>>>>");
 
 }
Index: source/ariba/overlay/modules/onehop/OneHop.h
===================================================================
--- source/ariba/overlay/modules/onehop/OneHop.h	(revision 3699)
+++ source/ariba/overlay/modules/onehop/OneHop.h	(revision 3705)
@@ -43,11 +43,13 @@
 #include "ariba/overlay/modules/OverlayInterface.h"
 #include "ariba/utility/logging/Logging.h"
+#include "ariba/utility/system/Timer.h"
 
 using std::map;
+using ariba::utility::Timer;
 
 namespace ariba {
 namespace overlay {
 
-class OneHop: public OverlayInterface {
+class OneHop : public OverlayInterface, protected Timer {
 	use_logging_h( OneHop );
 public:
@@ -58,4 +60,8 @@
 
 protected:
+
+	/// @see Timer.h
+	virtual void eventFunction();
+
 	/// @see OverlayInterface.h
 	virtual void createOverlay();
Index: source/ariba/overlay/modules/onehop/messages/OneHopMessage.h
===================================================================
--- source/ariba/overlay/modules/onehop/messages/OneHopMessage.h	(revision 3699)
+++ source/ariba/overlay/modules/onehop/messages/OneHopMessage.h	(revision 3705)
@@ -57,5 +57,6 @@
 		OneHopMessageTypeListingRequest = 1,
 		OneHopMessageTypeListingReply   = 2,
-		OneHopMessageTypeRoute	        = 3,
+		OneHopMessageTypeLeave          = 3,
+		OneHopMessageTypeRoute	        = 4,
 	} OneHopMessageType;
 
