Index: source/ariba/overlay/modules/chord/Chord.cpp
===================================================================
--- source/ariba/overlay/modules/chord/Chord.cpp	(revision 5644)
+++ source/ariba/overlay/modules/chord/Chord.cpp	(revision 5646)
@@ -102,6 +102,6 @@
 /// sends a discovery message
 void Chord::send_discovery_to(const NodeID& destination, int ttl) {
-//	logging_debug("Initiating discovery of " << destination.toString() );
-	Message msg;
+	if ( table->size() == 0 ) return;
+
 	ChordMessage cmsg(ChordMessage::discovery, nodeid, destination);
 	Discovery dmsg;
@@ -110,9 +110,8 @@
 	dmsg.setTTL((uint8_t) ttl);
 	cmsg.encapsulate(&dmsg);
-	msg.encapsulate(&cmsg);
 	discovery_count++;
+	if (discovery_count<0) discovery_count = 0;
 	const route_item* item = (*table)[ discovery_count % table->size() ];
-	if (item!=NULL && !item->info.isUnspecified()) send(&msg,item->info);
-//	this->onMessage(&msg, NodeID::UNSPECIFIED, LinkID::UNSPECIFIED);
+	if (item!=NULL && !item->info.isUnspecified()) send(&cmsg,item->info);
 }
 
Index: source/ariba/overlay/modules/chord/Chord.h
===================================================================
--- source/ariba/overlay/modules/chord/Chord.h	(revision 5644)
+++ source/ariba/overlay/modules/chord/Chord.h	(revision 5646)
@@ -87,5 +87,5 @@
 
 	// stabilization: sends a discovery message to the specified neighborhood
-	void send_discovery_to( const NodeID& destination, int ttl = 4 );
+	void send_discovery_to( const NodeID& destination, int ttl = 3 );
 
 public:
