Index: source/ariba/overlay/modules/chord/Chord.cpp
===================================================================
--- source/ariba/overlay/modules/chord/Chord.cpp	(revision 5717)
+++ source/ariba/overlay/modules/chord/Chord.cpp	(revision 5718)
@@ -108,8 +108,8 @@
 	dmsg.setTTL((uint8_t) ttl);
 	cmsg.encapsulate(&dmsg);
-	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(&cmsg,item->info);
+
+	// get next hop
+	const route_item* item = table->get_next_hop(destination);
+	if (item!=NULL && !item->info.isUnspecified()) send(&cmsg, item->info);
 }
 
@@ -292,10 +292,4 @@
 	M* m = msg.getMessage()->convert<ChordMessage> ();
 	if (m == NULL) return;
-
-	// drop-self messages
-	if (m->getSource() == nodeid ) {
-		delete m;
-		return;
-	}
 
 	// handle messages
