Index: source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.cpp
===================================================================
--- source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.cpp	(revision 4910)
+++ source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.cpp	(revision 4920)
@@ -66,7 +66,10 @@
 	: BootstrapModule(_callback),
 	server(io_service, &newRemoteServices, &newRemoteServicesMutex) {
+
+	io_service.run();
 }
 
 PeriodicBroadcast::~PeriodicBroadcast(){
+	io_service.stop();
 }
 
Index: source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.h
===================================================================
--- source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.h	(revision 4910)
+++ source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.h	(revision 4920)
@@ -116,7 +116,6 @@
 	class udp_server {
 	private:
-		udp::socket socket_v4_listen;
-		udp::socket socket_v4_send;
-		//udp::socket socket_v6;
+		udp::socket socket_v4;
+		udp::socket socket_v6;
 		udp::endpoint remote_endpoint_;
 		boost::array<char, 1500> recv_buffer_;
@@ -127,41 +126,39 @@
 		udp_server(boost::asio::io_service& io_service, ServiceList* _services, boost::mutex* _servicesmutex)
 			: services(_services), servicesmutex(_servicesmutex),
-				socket_v4_listen(io_service), socket_v4_send(io_service) /*, socket_v6(io_service)*/ {
+				socket_v4(io_service), socket_v6(io_service) {
 
 			boost::asio::ip::udp::endpoint listen_endpoint_v4(
-					boost::asio::ip::udp::v4() /*boost::asio::ip::address_v4::any()*/,
+					boost::asio::ip::address_v4::any(),
 					PeriodicBroadcast::serverport_v4);
 
-/*
 			boost::asio::ip::udp::endpoint listen_endpoint_v6(
-					boost::asio::ip::address_v6::from_string("ff02::1"),
+					boost::asio::ip::address_v6::any(),
 					PeriodicBroadcast::serverport_v6);
-*/
 
 			boost::system::error_code err;
 
-			//err = socket_v4.open( listen_endpoint_v4.protocol(), err );
-			//if(err) logging_warn("failed opening ipv4 socket");
-
-			//err = socket_v6.open( listen_endpoint_v6.protocol(), err );
-			//if(err) logging_warn("failed opening ipv6 socket");
-
-			//err = socket_v4.set_option( boost::asio::ip::udp::socket::reuse_address(true), err );
-			//if(err) logging_warn("failed setting reuse address option on ipv4 socket");
-
-			//err = socket_v6.set_option( boost::asio::ip::udp::socket::reuse_address(true), err );
-			//if(err) logging_warn("failed setting reuse address option on ipv6 socket");
-
-			err = socket_v4_listen.set_option( boost::asio::socket_base::broadcast(true), err );
-			err = socket_v4_send.set_option( boost::asio::socket_base::broadcast(true), err );
-			//if(err) logging_warn("failed setting broadcast option on ipv4 socket");
-
-			//err = socket_v6.set_option( boost::asio::socket_base::broadcast(true), err );
-			//if(err) logging_warn("failed setting broadcast option on ipv6 socket");
-
-			//err = socket_v4.bind( listen_endpoint_v4, err );
-			//if(err) logging_warn("failed binding ipv4 socket");
-			
-			//socket_v6.bind( listen_endpoint_v6 );
+			err = socket_v4.open( listen_endpoint_v4.protocol(), err );
+			if(err) logging_warn("failed opening ipv4 socket");
+
+			err = socket_v6.open( listen_endpoint_v6.protocol(), err );
+			if(err) logging_warn("failed opening ipv6 socket");
+
+			err = socket_v4.set_option( boost::asio::ip::udp::socket::reuse_address(true), err );
+			if(err) logging_warn("failed setting reuse address option on ipv4 socket");
+
+			err = socket_v6.set_option( boost::asio::ip::udp::socket::reuse_address(true), err );
+			if(err) logging_warn("failed setting reuse address option on ipv6 socket");
+
+			err = socket_v4.set_option( boost::asio::socket_base::broadcast(true), err );
+			if(err) logging_warn("failed setting broadcast option on ipv4 socket");
+
+			err = socket_v6.set_option( boost::asio::socket_base::broadcast(true), err );
+			if(err) logging_warn("failed setting broadcast option on ipv6 socket");
+
+			err = socket_v4.bind( listen_endpoint_v4, err );
+			if(err) logging_warn("failed binding ipv4 socket");
+
+			err = socket_v6.bind( listen_endpoint_v6 );
+			if(err) logging_warn("failed binding ipv6 socket");
 
 			start_receive();
@@ -182,22 +179,22 @@
 				udp::endpoint endp(udp::v4(), PeriodicBroadcast::serverport_v4);
 				endp.address( boost::asio::ip::address_v4::broadcast() );
-				socket_v4_send.send_to( boost::asio::buffer(pnt, len), endp, 0, err );
+				socket_v4.send_to( boost::asio::buffer(pnt, len), endp, 0, err );
 				if(err) logging_warn("failed sending message through ipv4 socket");
 			}
-			{/*
+			{
 				udp::endpoint endp(udp::v6(), PeriodicBroadcast::serverport_v6);
 				endp.address( boost::asio::ip::address_v6::from_string("ff02::1") );
 				socket_v6.send_to( boost::asio::buffer(pnt, len), endp, 0, ignored_error );
-			*/}
+			}
 		}
 
 	private:
 		void start_receive(){
-			socket_v4_listen.async_receive_from(
+			socket_v4.async_receive_from(
 					boost::asio::buffer(recv_buffer_), remote_endpoint_,
 					boost::bind(&udp_server::handle_receive, this,
 							boost::asio::placeholders::error,
 							boost::asio::placeholders::bytes_transferred));
-/*
+
 			socket_v6.async_receive_from(
 					boost::asio::buffer(recv_buffer_), remote_endpoint_,
@@ -205,5 +202,4 @@
 							boost::asio::placeholders::error,
 							boost::asio::placeholders::bytes_transferred));
-*/
 		}
 
@@ -244,8 +240,8 @@
 				const boost::system::error_code& error,
 				std::size_t /*bytes_transferred*/){
-	
+
 			if(error)
 				logging_warn("failed sending out message");
-		
+
 		}
 
@@ -253,4 +249,5 @@
 
 	udp_server server;
+
 };
 
