Index: code/trunk/src/libraries/network/Client.cc
===================================================================
--- code/trunk/src/libraries/network/Client.cc	(revision 5960)
+++ code/trunk/src/libraries/network/Client.cc	(revision 5961)
@@ -111,4 +111,8 @@
     return true;
   }
+  
+  void Client::printRTT(){
+    COUT(0) << "Round trip time to server is " << ClientConnection::getRTT() << " ms" << endl;
+  }
 
   /**
Index: code/trunk/src/libraries/network/Client.h
===================================================================
--- code/trunk/src/libraries/network/Client.h	(revision 5960)
+++ code/trunk/src/libraries/network/Client.h	(revision 5961)
@@ -72,4 +72,5 @@
     virtual bool chat(const std::string& message);
     virtual bool broadcast(const std::string& message) { return false; }
+    virtual void printRTT();
 
     void update(const Clock& time);
Index: code/trunk/src/libraries/network/ClientConnection.cc
===================================================================
--- code/trunk/src/libraries/network/ClientConnection.cc	(revision 5960)
+++ code/trunk/src/libraries/network/ClientConnection.cc	(revision 5961)
@@ -146,4 +146,10 @@
     this->connectionClosed();
   }
+  
+  uint32_t ClientConnection::getRTT()
+  { 
+    assert(server_);
+    return server_->roundTripTime;
+  }
 
 }
Index: code/trunk/src/libraries/network/ClientConnection.h
===================================================================
--- code/trunk/src/libraries/network/ClientConnection.h	(revision 5960)
+++ code/trunk/src/libraries/network/ClientConnection.h	(revision 5961)
@@ -55,4 +55,5 @@
   protected:
     virtual void connectionClosed()=0;
+    uint32_t getRTT();
   private:
     virtual void addPeer(ENetEvent* event);
Index: code/trunk/src/libraries/network/ClientInformation.cc
===================================================================
--- code/trunk/src/libraries/network/ClientInformation.cc	(revision 5960)
+++ code/trunk/src/libraries/network/ClientInformation.cc	(revision 5961)
@@ -42,4 +42,5 @@
 #define WIN32_LEAN_AND_MEAN
 #include <enet/enet.h>
+#include "ClientConnectionListener.h"
 
 namespace orxonox
@@ -66,4 +67,5 @@
     if(this==head_)
       head_=next();
+    ClientConnectionListener::broadcastClientDisconnected( this->getID() );
   }
 
Index: code/trunk/src/libraries/network/Host.cc
===================================================================
--- code/trunk/src/libraries/network/Host.cc	(revision 5960)
+++ code/trunk/src/libraries/network/Host.cc	(revision 5961)
@@ -50,4 +50,6 @@
   assert(instance_==0);
   instance_=this;
+  this->printRTTCC_ = createConsoleCommand( createFunctor(&Host::printRTT, this), "printRTT" );
+  CommandExecutor::addConsoleCommandShortcut( this->printRTTCC_ );
 }
 
@@ -59,4 +61,6 @@
 {
   instance_=0;
+  if( this->printRTTCC_ )
+    delete this->printRTTCC_;
 }
 
Index: code/trunk/src/libraries/network/Host.h
===================================================================
--- code/trunk/src/libraries/network/Host.h	(revision 5960)
+++ code/trunk/src/libraries/network/Host.h	(revision 5961)
@@ -31,4 +31,5 @@
 
 #include "NetworkPrereqs.h"
+#include "core/CorePrereqs.h"
 
 namespace orxonox {
@@ -79,5 +80,7 @@
     static bool Broadcast(const std::string& message);
     static bool incomingChat(const std::string& message, unsigned int playerID);
+    virtual void printRTT()=0;
   private:
+    ConsoleCommand* printRTTCC_;
 };
 
Index: code/trunk/src/libraries/network/Server.cc
===================================================================
--- code/trunk/src/libraries/network/Server.cc	(revision 5960)
+++ code/trunk/src/libraries/network/Server.cc	(revision 5961)
@@ -164,7 +164,13 @@
    * @brief: returns ping time to client in milliseconds 
    */
-  unsigned int Server::getPing(unsigned int clientID){
+  unsigned int Server::getRTT(unsigned int clientID){
     assert(ClientInformation::findClient(clientID));
     return ClientInformation::findClient(clientID)->getRTT();
+  }
+  
+  void Server::printRTT()
+  {
+    for( ClientInformation* temp=ClientInformation::getBegin(); temp!=0; temp=temp->next() )
+      COUT(0) << "Round trip time to client with ID: " << temp->getID() << " is " << temp->getRTT() << " ms" << endl;
   }
 
@@ -299,5 +305,5 @@
     {
       //ServerConnection::disconnectClient( client );
-      ClientConnectionListener::broadcastClientDisconnected( client->getID() );
+      //ClientConnectionListener::broadcastClientDisconnected( client->getID() ); //this is done in ClientInformation now
       delete client;
     }
@@ -343,5 +349,5 @@
     GamestateManager::removeClient(client);
     // inform all the listeners
-    ClientConnectionListener::broadcastClientDisconnected(client->getID());
+    // ClientConnectionListener::broadcastClientDisconnected(client->getID()); // this is done in ClientInformation now
   }
 
Index: code/trunk/src/libraries/network/Server.h
===================================================================
--- code/trunk/src/libraries/network/Server.h	(revision 5960)
+++ code/trunk/src/libraries/network/Server.h	(revision 5961)
@@ -57,5 +57,6 @@
     bool queuePacket(ENetPacket *packet, int clientID);
     void update(const Clock& time);
-    unsigned int getPing(unsigned int clientID);
+    unsigned int getRTT(unsigned int clientID);
+    virtual void printRTT();
     double getPacketLoss(unsigned int clientID);
   protected:
