Index: source/ariba/overlay/modules/chord/Chord.cpp
===================================================================
--- source/ariba/overlay/modules/chord/Chord.cpp	(revision 5883)
+++ source/ariba/overlay/modules/chord/Chord.cpp	(revision 5884)
@@ -249,11 +249,16 @@
 			baseoverlay.dropLink(item->info);
 		item->info = lnk;
+
 		// discover neighbors of new overlay neighbor
-		discover_neighbors( lnk );
 		showLinks();
 	} else { // no-> add orphan entry to routing table
 		logging_info("new orphan: " << remote.toString()
 				<< " with link " << lnk.toString());
-		table->insert_orphan(remote)->info = lnk;
+		item = table->insert_orphan(remote);
+
+		// replace with new link
+		if (!item->info.isUnspecified() || item->info!=lnk)
+			baseoverlay.dropLink(item->info);
+		item->info = lnk;
 	}
 
@@ -373,5 +378,7 @@
 					item = table->get(*table->get_predesessor());
 			}
-			if (item == NULL) break;
+			if (item == NULL)
+				break;
+
 			logging_debug("Routing discovery message to succ/pred "
 				<< item->id.toString() );
