Index: /sample/pingpong/main.cpp
===================================================================
--- /sample/pingpong/main.cpp	(revision 4921)
+++ /sample/pingpong/main.cpp	(revision 4924)
@@ -6,5 +6,4 @@
 using ariba::utility::StartupWrapper;
 using ariba::application::pingpong::PingPong;
-
 
 //*************************************************
@@ -16,6 +15,10 @@
 	StartupWrapper::startSystem();
 
+	std::cout << "yyyyyyyyy!" << std::endl;
+
 	BootstrapManager& manager = BootstrapManager::instance();
 	manager.registerModule( BootstrapManager::BootstrapTypePeriodicBroadcast );
+
+	std::cout << "xxxxxxxxxxxxyyyyyyyyy!" << std::endl;
 
 	manager.publish("testname", "testinfo1", "testinfo2", "testinfo3");
@@ -31,6 +34,6 @@
 int main( int argc, char** argv ) {
 
-	//debug();
-	//return 0;
+	debug();
+	return 0;
 
 
Index: /source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.cpp
===================================================================
--- /source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.cpp	(revision 4921)
+++ /source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.cpp	(revision 4924)
@@ -67,9 +67,17 @@
 	server(io_service, &newRemoteServices, &newRemoteServicesMutex) {
 
-	io_service.run();
+	io_service_thread = new boost::thread(
+		boost::bind(&PeriodicBroadcast::threadFunc, this) );
 }
 
 PeriodicBroadcast::~PeriodicBroadcast(){
 	io_service.stop();
+	io_service_thread->join();
+	delete io_service_thread;
+	io_service_thread = NULL;
+}
+
+void PeriodicBroadcast::threadFunc(PeriodicBroadcast* obj){
+	obj->io_service.run();
 }
 
Index: /source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.h
===================================================================
--- /source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.h	(revision 4921)
+++ /source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.h	(revision 4924)
@@ -113,4 +113,6 @@
 
 	boost::asio::io_service io_service;
+	boost::thread* io_service_thread;
+	static void threadFunc(PeriodicBroadcast* obj);
 
 	class udp_server {
