Index: source/ariba/overlay/BaseOverlay.cpp
===================================================================
--- source/ariba/overlay/BaseOverlay.cpp	(revision 6867)
+++ source/ariba/overlay/BaseOverlay.cpp	(revision 6869)
@@ -523,34 +523,31 @@
 		} else {
 			logging_warn("Could not send message. No relay hop found to "
-					<< destination)
-			logging_error("ERROR: " << debugInformation() );
+					<< destination << " -- trying to route over overlay paths ...")
+//			logging_error("ERROR: " << debugInformation() );
 		//			return -1;
 		}
 	}
 
-	// routed message
-	/*else*/ {
-		// no-> relay path! route over overlay path
-		LinkID next_id = overlayInterface->getNextLinkId( destination );
-		if (next_id.isUnspecified()) {
-			logging_warn("Could not send message. No next hop found to " <<
-					destination );
-			logging_error("ERROR: " << debugInformation() );
-			return -1;
-		}
-
-		// get link descriptor, up and running? yes-> send message
-		next_link = getDescriptor(next_id);
-		if (next_link != NULL && next_link->up) {
-			// send message over relayed link
-			return send(message, next_link);
-		}
-
-		// no-> error, dropping message
-		else {
-			logging_warn("Could not send message. Link not known or up");
-			logging_error("ERROR: " << debugInformation() );
-			return -1;
-		}
+	// last resort -> route over overlay path
+	LinkID next_id = overlayInterface->getNextLinkId( destination );
+	if (next_id.isUnspecified()) {
+		logging_warn("Could not send message. No next hop found to " <<
+				destination );
+		logging_error("ERROR: " << debugInformation() );
+		return -1;
+	}
+
+	// get link descriptor, up and running? yes-> send message
+	next_link = getDescriptor(next_id);
+	if (next_link != NULL && next_link->up) {
+		// send message over relayed link
+		return send(message, next_link);
+	}
+
+	// no-> error, dropping message
+	else {
+		logging_warn("Could not send message. Link not known or up");
+		logging_error("ERROR: " << debugInformation() );
+		return -1;
 	}
 
@@ -982,7 +979,9 @@
 	OverlayMsg msg(OverlayMsg::typeLinkRequest, service, nodeId, remote );
 	msg.setSourceLink(ld->overlayId);
+
+	// send over relayed link
+	msg.setRelayed(true);
 	//msg.setRelayed(false);
-	msg.setRelayed(true);
-	msg.setRegisterRelay(true);
+	//msg.setRegisterRelay(true);
 
 	// debug message
@@ -2084,5 +2083,5 @@
 		// re-publish values
 		BOOST_FOREACH( ValueEntry& value, entry.values )
-			dhtPut(entry.key, value.get_value(), 0 );
+			dhtPut(entry.key, value.get_value(), 0, true );
 	}
 }
