Index: sample/pingpong/PingPong.cpp
===================================================================
--- sample/pingpong/PingPong.cpp	(revision 5284)
+++ sample/pingpong/PingPong.cpp	(revision 5316)
@@ -33,26 +33,25 @@
 	ariba = new AribaModule();
 
-	// get the configuration object
-	Configuration& config = Configuration::instance();
-
-	// generate spovnet name
 	Name spovnetName("pingpong");
-
-	// get initiator flag
-	this->isInitiator = Configuration::instance().read<bool>("node.initiator");
-
+	Name nodeName = Name::UNSPECIFIED;
 	this->name = string("<ping>");
 
-	// get node name
-	Name nodeName = Name::UNSPECIFIED;
-	if (config.exists("node.name")) nodeName = config.read<string> ("node.name");
-
-	// configure ariba module
-	if (config.exists("ariba.endpoints"))
-		ariba->setProperty("endpoints", config.read<string>("ariba.endpoints"));
-	if (config.exists("ariba.bootstrap.hints"))
-		ariba->setProperty("bootstrap.hints", config.read<string>("ariba.bootstrap.hints"));
-	if (config.exists("pingpong.name"))
-		name = config.read<string>("pingpong.name");
+	// get settings from configuration object
+	if( Configuration::haveConfig() ){
+		Configuration& config = Configuration::instance();
+
+		// get node name
+		if (config.exists("node.name"))
+			nodeName = config.read<string> ("node.name");
+
+		// configure ariba module
+		if (config.exists("ariba.endpoints"))
+			ariba->setProperty("endpoints", config.read<string>("ariba.endpoints"));
+		if (config.exists("ariba.bootstrap.hints"))
+			ariba->setProperty("bootstrap.hints", config.read<string>("ariba.bootstrap.hints"));
+		if (config.exists("pingpong.name"))
+			name = config.read<string>("pingpong.name");
+
+	} // if( Configuration::haveConfig() )
 
 	// start ariba module
@@ -73,7 +72,11 @@
 	//params.setBaseOverlayType( SpoVNetProperties::ONE_HOP_OVERLAY ); // alternative: OneHop
 
-	// initiate or join the spovnet
-	if (!isInitiator) node->join(spovnetName);
-	else node->initiate(spovnetName, params);
+	// initiate the spovnet
+	logging_info("initiating spovnet");
+	node->initiate(spovnetName, params);
+
+	// join the spovnet
+	logging_info("joining spovnet");
+	node->join(spovnetName);
 
 	// ping pong started up...
@@ -122,6 +125,5 @@
 	// function that is implemented further down in PingPong::onLinkUp
 
-//	logging_info( "pinging overlay neighbors with ping id " << ++pingId );
-
+	logging_info( "pinging overlay neighbors with ping id " << ++pingId );
 	PingPongMessage pingmsg( pingId, name );
 
@@ -140,6 +142,8 @@
 		names.clear();
 	}
+
 	vector<NodeID> nodes = node->getNeighborNodes();
 	BOOST_FOREACH( NodeID nid, nodes ){
+		logging_info( "sending ping message to " << nid.toString() );
 		node->sendMessage( pingmsg, nid, PingPong::PINGPONG_SERVICEID );
 	}
@@ -176,7 +180,7 @@
 	for (int i=0;i<names.size(); i++) if (names[i]==pingmsg->getName()) found=true;
 	if (!found) names.push_back(pingmsg->getName());
-//	logging_info( "received ping message on link " << lnk.toString()
-//			<< " from node " << remote.toString()
-//			<< ": " << pingmsg->info() );
+	logging_info( "received ping message on link " << lnk.toString()
+			<< " from node " << remote.toString()
+			<< ": " << pingmsg->info() );
 }
 
Index: sample/pingpong/PingPong.h
===================================================================
--- sample/pingpong/PingPong.h	(revision 5284)
+++ sample/pingpong/PingPong.h	(revision 5316)
@@ -68,7 +68,4 @@
 	vector<string> names;
 
-	// flag, whether this node initiates or just joins the spovnet
-	bool isInitiator;
-
 	// the ping pong service id
 	static ServiceID PINGPONG_SERVICEID;
