Index: source/ariba/overlay/BaseOverlay.cpp
===================================================================
--- source/ariba/overlay/BaseOverlay.cpp	(revision 6967)
+++ source/ariba/overlay/BaseOverlay.cpp	(revision 7018)
@@ -987,6 +987,5 @@
 	// send over relayed link
 	msg.setRelayed(true);
-	//msg.setRelayed(false);
-	//msg.setRegisterRelay(true);
+	msg.setRegisterRelay(true);
 
 	// debug message
@@ -2112,11 +2111,11 @@
 void BaseOverlay::stabilizeDHT() {
 
-	// do not refresh every second
-/*	if (republishCounter < 2) {
+	// do refresh every 2 seconds
+	if (republishCounter < 2) {
 		republishCounter++;
 		return;
 	}
 	republishCounter = 0;
-*/
+
 	// remove old values from DHT
 	BOOST_FOREACH( DHTEntry& entry, dht->entries ) {
@@ -2125,14 +2124,8 @@
 	}
 
-	// erase old values from local DHT
-	BOOST_FOREACH( DHTEntry& entry, localDHT->entries ) {
-		// erase old entries
-		entry.erase_expired_entries();
-	}
-
-	// re-publish values
+	// re-publish values-> do not refresh locally stored values
 	BOOST_FOREACH( DHTEntry& entry, localDHT->entries ) {
 		BOOST_FOREACH( ValueEntry& value, entry.values )
-			dhtPut(entry.key, value.get_value(), 0, false, true );
+			dhtPut(entry.key, value.get_value(), value.get_ttl(), false, true );
 	}
 }
@@ -2141,6 +2134,6 @@
 bool BaseOverlay::handleDHTMessage( OverlayMsg* msg ) {
 
-	// decapsulate message
-	logging_debug("received DHT message");
+	// de-capsulate message
+	logging_debug("Received DHT message");
 	DHTMessage* dhtMsg = msg->decapsulate<DHTMessage>();
 
@@ -2159,6 +2152,6 @@
 	if (!overlayInterface->isClosestNodeTo(msg->getDestinationNode())) {
 		logging_debug("Routing DHT message to closest node "
-				<< " from " << msg->getSourceNode()
-				<< " to " << msg->getDestinationNode()
+			<< " from " << msg->getSourceNode()
+			<< " to " << msg->getDestinationNode()
 		);
 		route( msg );
@@ -2169,13 +2162,15 @@
 	// now, we are the closest node...
 	switch (msg->getType()) {
+
+	// ----------------------------------------------------------------- put ---
 	case OverlayMsg::typeDHTPut: {
-		logging_debug("DHT: Attempt to store values for key "
+		logging_debug("DHT-Put: Attempt to store values for key "
 				<< dhtMsg->getKey());
 		if (dhtMsg->doReplace()) {
-			logging_debug("DHT: Attempt to replace key: remove old values first!");
+			logging_debug("DHT-Put: Attempt to replace key: remove old values first!");
 			dht->remove(dhtMsg->getKey());
 		}
 		BOOST_FOREACH( Data value, dhtMsg->getValues() ) {
-			logging_debug("DHT: Stored value: " << value );
+			logging_debug("DHT-Put: Stored value: " << value );
 			dht->put(dhtMsg->getKey(), value, dhtMsg->getTTL() );
 		}
@@ -2183,4 +2178,5 @@
 	}
 
+	// ----------------------------------------------------------------- get ---
 	case OverlayMsg::typeDHTGet: {
 		logging_info("DHT-Get: key=" << dhtMsg->getKey() );
@@ -2197,4 +2193,5 @@
 	}
 
+	// -------------------------------------------------------------- remove ---
 	case OverlayMsg::typeDHTRemove: {
 		if (dhtMsg->hasValues()) {
@@ -2206,4 +2203,5 @@
 	}
 
+	// -------------------------------------------------------------- default---
 	default:
 		logging_error("DHT Message type unknown.");
@@ -2217,10 +2215,12 @@
 void BaseOverlay::dhtPut( const Data& key, const Data& value, int ttl, bool replace, bool no_local_refresh ) {
 
-	logging_info("DHT: putting key=" << key << " value=" << value
+	// log
+	logging_info("DHT-Put:"
+		<< " key=" << key << " value=" << value
 		<< " ttl=" << ttl << " replace=" << replace
 	);
 
-
 	if (!no_local_refresh) {
+
 		// put into local data store (for refreshes)
 		if (replace) localDHT->remove(key);
@@ -2256,4 +2256,7 @@
 /// removes all data stored at the given key
 void BaseOverlay::dhtRemove( const Data& key ) {
+	// log: remove key
+	logging_info("DHT-Remove: Removing key=" << key );
+
 	// calculate hash
 	NodeID dest = NodeID::sha1(key.getBuffer(), key.getLength() / 8);
@@ -2268,5 +2271,6 @@
 /// requests data stored using key
 void BaseOverlay::dhtGet( const Data& key, const ServiceID& service ) {
-	logging_info("DHT: trying to resolve key=" <<
+	// log: remove get
+	logging_info("DHT-Get: Trying to resolve key=" <<
 			key << " for service=" << service.toString() );
 
@@ -2283,5 +2287,8 @@
 
 void BaseOverlay::dhtSend( OverlayMsg* msg, const NodeID& dest ) {
-	logging_info("DHT: sending message with key=" << dest.toString() );
+	// log: dht send
+	logging_info("DHT-Send: Sending message with key=" << dest.toString() );
+
+	/// set source and destination
 	msg->setSourceNode(this->nodeId);
 	msg->setDestinationNode(dest);
@@ -2298,5 +2305,5 @@
 
 	// send message "normally"
-	send(msg, dest);
+	send( msg, dest );
 }
 
Index: source/ariba/utility/transport/tcpip/protlib/address.h
===================================================================
--- source/ariba/utility/transport/tcpip/protlib/address.h	(revision 6967)
+++ source/ariba/utility/transport/tcpip/protlib/address.h	(revision 7018)
@@ -690,5 +690,5 @@
     virtual udsaddress* copy() const;
     virtual bool operator==(const address& ie) const;
-
+dsdsd
     /// constructor
     udsaddress() : address(UDSAddress) { uds_socket = ""; socknum=0;};
