Index: source/ariba/overlay/BaseOverlay.cpp
===================================================================
--- source/ariba/overlay/BaseOverlay.cpp	(revision 6873)
+++ source/ariba/overlay/BaseOverlay.cpp	(revision 6874)
@@ -2097,5 +2097,5 @@
 	BOOST_FOREACH( DHTEntry& entry, localDHT->entries ) {
 		BOOST_FOREACH( ValueEntry& value, entry.values )
-			dhtPut(entry.key, value.get_value(), 0, true );
+			dhtPut(entry.key, value.get_value(), 0, true, true );
 	}
 }
@@ -2171,5 +2171,5 @@
 
 /// put a value to the DHT with a ttl given in seconds
-void BaseOverlay::dhtPut( const Data& key, const Data& value, int ttl, bool replace ) {
+void BaseOverlay::dhtPut( const Data& key, const Data& value, int ttl, bool replace, bool no_local_refresh ) {
 
 	logging_info("DHT: putting key=" <<  key
@@ -2180,7 +2180,9 @@
 
 
-	// put into local data store (for refreshes)
-	if (replace) localDHT->remove(key);
-	localDHT->put(key, value, ttl);
+	if (!no_local_refresh) {
+		// put into local data store (for refreshes)
+		if (replace) localDHT->remove(key);
+		localDHT->put(key, value, ttl);
+	}
 
 	// calculate hash
Index: source/ariba/overlay/BaseOverlay.h
===================================================================
--- source/ariba/overlay/BaseOverlay.h	(revision 6873)
+++ source/ariba/overlay/BaseOverlay.h	(revision 6874)
@@ -279,5 +279,5 @@
 
 	/// put a value to the DHT with a ttl given in seconds
-	void dhtPut( const Data& key, const Data& value, int ttl = 0, bool replace = false);
+	void dhtPut( const Data& key, const Data& value, int ttl = 0, bool replace = false, bool no_local_refresh = false);
 
 	/// removes a key value pair from the DHT
