Index: source/ariba/overlay/OverlayBootstrap.cpp
===================================================================
--- source/ariba/overlay/OverlayBootstrap.cpp	(revision 5953)
+++ source/ariba/overlay/OverlayBootstrap.cpp	(revision 5967)
@@ -38,5 +38,9 @@
 
 #include "OverlayBootstrap.h"
+
 #include "BaseOverlay.h"
+#include "ariba/utility/bootstrap/modules/bluetoothsdp/BluetoothSdp.h"
+
+using ariba::utility::BluetoothSdp;
 
 namespace ariba {
@@ -51,7 +55,10 @@
 		nodeid( NodeID::UNSPECIFIED ),
 		overlay( NULL ),
-		watchtimer(this) {
+		watchtimer(this),
+		haveOverlayConnection(false){
 
 	srand(time(NULL));
+
+	BluetoothSdp::CONNECTION_CHECKER = this;
 }
 
@@ -162,4 +169,9 @@
 
 	lastJoines.push_front(data);
+}
+
+bool OverlayBootstrap::haveOverlayConnections(){
+	boost::mutex::scoped_lock lock(haveOverlayConnectionMutex);
+	return haveOverlayConnection;
 }
 
@@ -175,24 +187,13 @@
 	}
 
-	// TODO: --> SIGCOMM hack <--
-	// if we have no overlay neighbors, make sure sdp is loaded
-	// sdp searching is turned off when we have bootstrapped
-	if(overlay->getOverlayNeighbors().size() > 0){
-
-		// switch off sdp when we we _are_ in the spovnet already
-		if(manager.isModuleRegistered(BootstrapManager::BootstrapTypeBluetoothSdp))
-			manager.unregisterModule(BootstrapManager::BootstrapTypeBluetoothSdp);
-
-		return;
+	{
+		boost::mutex::scoped_lock lock(haveOverlayConnectionMutex);
+		haveOverlayConnection = overlay->getOverlayNeighbors().size() > 0;
+
+		// we have overlay neighbors -> ok nothing to do
+		if(haveOverlayConnection > 0) return;
 	}
 
-	// make sure sdp is running when we are _not_ in the spovnet
-	if(!manager.isModuleRegistered(BootstrapManager::BootstrapTypeBluetoothSdp))
-		manager.registerModule(BootstrapManager::BootstrapTypeBluetoothSdp);
-
-	//
-	// we have overlay neighbors -> ok
-	//
-
+	// no overlay neighbors, see if we can join using old information
 	logging_info("overlay not joined, checking for earlier used bootstrap information");
 	EndpointDescriptor joinep = EndpointDescriptor::UNSPECIFIED();
Index: source/ariba/overlay/OverlayBootstrap.h
===================================================================
--- source/ariba/overlay/OverlayBootstrap.h	(revision 5953)
+++ source/ariba/overlay/OverlayBootstrap.h	(revision 5967)
@@ -90,4 +90,5 @@
 
 	void recordJoin(const EndpointDescriptor& _ep);
+	bool haveOverlayConnections();
 
 protected:
@@ -134,4 +135,8 @@
 	WatchdogTimer watchtimer;
 	void checkOverlayStatus();
+
+
+	bool haveOverlayConnection;
+	boost::mutex haveOverlayConnectionMutex;
 };
 
