Index: /source/ariba/overlay/modules/chord/Chord.cpp
===================================================================
--- /source/ariba/overlay/modules/chord/Chord.cpp	(revision 5641)
+++ /source/ariba/overlay/modules/chord/Chord.cpp	(revision 5642)
@@ -71,10 +71,21 @@
 /// helper: sets up a link using the base overlay
 LinkID Chord::setup(const EndpointDescriptor& endp, const NodeID& node) {
-
-	logging_debug("request to setup link to " << endp.toString() );
-
+	logging_debug("Request to setup link to " << endp.toString() );
+
+	// check if node is already present
+	if (!node.isUnspecified() && table->get(node)!=NULL) {
+		logging_error("Node is already a neighbor!");
+		return LinkID::UNSPECIFIED;
+	}
+
+	// check if we are already trying to establish a link
 	for (size_t i=0; i<pending.size(); i++)
-		if (pending[i]==node) return LinkID::UNSPECIFIED;
-	pending.push_back(node);
+		if ( pending[i] == node ) {
+			logging_debug("Already trying to establish a link to node " << node.toString() );
+			return LinkID::UNSPECIFIED;
+		}
+
+	// adding node to list of pending connections
+	pending.push_back( node );
 
 	// establish link via base overlay
