Index: /source/ariba/communication/modules/transport/tcp/TCPTransport.cpp
===================================================================
--- /source/ariba/communication/modules/transport/tcp/TCPTransport.cpp	(revision 5450)
+++ /source/ariba/communication/modules/transport/tcp/TCPTransport.cpp	(revision 5464)
@@ -203,5 +203,4 @@
 					// converting message
 					logging_debug( "converting message" );
-					//std::cout << "XXXXXXXXXXXXreceived data on tcp transport: " << data << std::endl;
 					Message* msg = new Message(data);
 
Index: /source/ariba/overlay/BaseOverlay.cpp
===================================================================
--- /source/ariba/overlay/BaseOverlay.cpp	(revision 5450)
+++ /source/ariba/overlay/BaseOverlay.cpp	(revision 5464)
@@ -241,5 +241,5 @@
 	bc(NULL), overlayInterface(NULL), nodeId(NodeID::UNSPECIFIED),
 	spovnetId(SpoVNetID::UNSPECIFIED), state(BaseOverlayStateInvalid),
-	sideport(&SideportListener::DEFAULT), started(false) {
+	sideport(&SideportListener::DEFAULT), started(false), counter(0) {
 }
 
Index: /source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.h
===================================================================
--- /source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.h	(revision 5450)
+++ /source/ariba/utility/bootstrap/modules/periodicbroadcast/PeriodicBroadcast.h	(revision 5464)
@@ -131,5 +131,6 @@
 		udp::socket socket_v6;
 		udp::endpoint remote_endpoint_;
-		boost::array<char, 1500> recv_buffer_;
+		boost::array<char, 1500> recv_buffer_4;
+		boost::array<char, 1500> recv_buffer_6;
 		ServiceList* services;
 		boost::mutex* servicesmutex;
@@ -203,47 +204,59 @@
 		void start_receive(){
 			socket_v4.async_receive_from(
-					boost::asio::buffer(recv_buffer_), remote_endpoint_,
-					boost::bind(&udp_server::handle_receive, this,
+					boost::asio::buffer(recv_buffer_4), remote_endpoint_,
+					boost::bind(&udp_server::handle_receive_4, this,
 							boost::asio::placeholders::error,
 							boost::asio::placeholders::bytes_transferred));
 
 			socket_v6.async_receive_from(
-					boost::asio::buffer(recv_buffer_), remote_endpoint_,
-					boost::bind(&udp_server::handle_receive, this,
+					boost::asio::buffer(recv_buffer_6), remote_endpoint_,
+					boost::bind(&udp_server::handle_receive_6, this,
 							boost::asio::placeholders::error,
 							boost::asio::placeholders::bytes_transferred));
 		}
 
-		void handle_receive(const boost::system::error_code& error,
+		void handle_receive_4(const boost::system::error_code& error,
 				std::size_t bytes_transferred){
 
-			if (!error || error == boost::asio::error::message_size){
-
-				PeriodicBroadcastMessage msg;
-				Data data( (uint8_t*)recv_buffer_.data(), bytes_transferred*8 );
-				data_deserialize( msg, data );
-
-				{ // insert new found service
-					boost::mutex::scoped_lock( *servicesmutex );
-
-					ServiceList::iterator it = services->find( msg.getName() );
-					if( it != services->end() ){
-
-						it->second.info1 = msg.getInfo1();
-						it->second.info2 = msg.getInfo2();
-						it->second.info3 = msg.getInfo3();
-						it->second.lastseen = time(NULL);
-
-					} else {
-						Service s( msg.getName(), msg.getInfo1(), msg.getInfo2(), msg.getInfo3(), time(NULL));
-						services->insert( std::make_pair(msg.getName(), s) );
-					}
+			if (!error || error == boost::asio::error::message_size)
+				handle_info(recv_buffer_4, bytes_transferred);
+			else
+				logging_warn("failed receiving broadcast data: " << error.message());
+
+			start_receive();
+		}
+
+		void handle_receive_6(const boost::system::error_code& error,
+				std::size_t bytes_transferred){
+
+			if (!error || error == boost::asio::error::message_size)
+				handle_info(recv_buffer_6, bytes_transferred);
+			else
+				logging_warn("failed receiving broadcast data: " << error.message());
+
+			start_receive();
+		}
+
+		void handle_info(boost::array<char, 1500>& buffer, std::size_t length){
+			PeriodicBroadcastMessage msg;
+
+			Data data( (uint8_t*)buffer.data(), length*8 );
+			data_deserialize( msg, data );
+
+			{ // insert new found service
+				boost::mutex::scoped_lock( *servicesmutex );
+
+				ServiceList::iterator it = services->find( msg.getName() );
+				if( it != services->end() ){
+
+					it->second.info1 = msg.getInfo1();
+					it->second.info2 = msg.getInfo2();
+					it->second.info3 = msg.getInfo3();
+					it->second.lastseen = time(NULL);
+
+				} else {
+					Service s( msg.getName(), msg.getInfo1(), msg.getInfo2(), msg.getInfo3(), time(NULL));
+					services->insert( std::make_pair(msg.getName(), s) );
 				}
-
-				start_receive();
-			} else {
-
-				logging_warn("failed receiving message on ipv4 socket" << error);
-
 			}
 		}
