Index: source/ariba/overlay/modules/chord/Chord.cpp
===================================================================
--- source/ariba/overlay/modules/chord/Chord.cpp	(revision 5664)
+++ source/ariba/overlay/modules/chord/Chord.cpp	(revision 5665)
@@ -354,6 +354,6 @@
 				// find next hop
 				const route_item* item = table->get_next_hop(
-						m->getDestination());
-				if (item->id == nodeid) break;
+						m->getDestination(),true);
+				if (item == NULL || item->id == nodeid) break;
 				logging_debug("routing discovery message to " <<
 						item->id.toString() );
Index: source/ariba/overlay/modules/chord/detail/chord_routing_table.hpp
===================================================================
--- source/ariba/overlay/modules/chord/detail/chord_routing_table.hpp	(revision 5664)
+++ source/ariba/overlay/modules/chord/detail/chord_routing_table.hpp	(revision 5665)
@@ -248,9 +248,10 @@
 
 	/// returns the next hop
-	const item* get_next_hop( const nodeid_t& value ) {
+	const item* get_next_hop( const nodeid_t& value, bool nts = false) {
 		ring_distance distance;
 		item* best_item = NULL;
 		for (size_t i=0; i<table.size(); i++) {
 			item* curr = &table[i];
+			if (nts && curr->id == value) continue;
 
 			// not not include orphans into routing!
