Index: source/ariba/overlay/modules/chord/Chord.cpp
===================================================================
--- source/ariba/overlay/modules/chord/Chord.cpp	(revision 6919)
+++ source/ariba/overlay/modules/chord/Chord.cpp	(revision 7744)
@@ -250,8 +250,15 @@
 		logging_info("new routing neighbor: " << remote.toString()
 				<< " with link " << lnk.toString());
-		// replace with new link
-		if (item->info!=lnk && item->info.isUnspecified()==false)
-			baseoverlay.dropLink(item->info);
-		item->info = lnk;
+
+		// replace with new link if link is "better"
+		if (item->info!=lnk && item->info.isUnspecified()==false) {
+			if (baseoverlay.compare( item->info, lnk ) == 1) {
+				logging_info("Replacing link due to concurrent link establishment.");
+				baseoverlay.dropLink(item->info);
+				item->info = lnk;
+			}
+		} else {
+			item->info = lnk;
+		}
 
 		// discover neighbors of new overlay neighbor
