Index: branches/network/src/lib/network/connection_monitor.cc
===================================================================
--- branches/network/src/lib/network/connection_monitor.cc	(revision 7916)
+++ branches/network/src/lib/network/connection_monitor.cc	(revision 7952)
@@ -24,4 +24,8 @@
 using namespace std;
 
+/**
+ * constructor
+ * @param userId user's id
+ */
 ConnectionMonitor::ConnectionMonitor( int userId )
 {
@@ -41,10 +45,20 @@
   
   this->lastPacketTick = 0;
-}
-
+  this->lastPrintTick = 0;
+}
+
+/**
+ * deconstructor
+ */
 ConnectionMonitor::~ConnectionMonitor( )
 {
 }
 
+/**
+ * process unzipped outgoing packet
+ * @param data pointer to packet data
+ * @param length length of packet
+ * @param stateId packet's state id
+ */
 void ConnectionMonitor::processUnzippedOutgoingPacket( byte * data, int length, int stateId )
 {
@@ -60,5 +74,5 @@
   outgoingUnzippedBandWidth = calculateBandWidth( outgoingUnzippedPacketHistory, tick );
   
-  NETPRINTF(n)("UNZIPPED UPSTREAM: user: %d bandwidth %f\n", userId, outgoingUnzippedBandWidth );
+  //NETPRINTF(n)("UNZIPPED UPSTREAM: user: %d bandwidth %f\n", userId, outgoingUnzippedBandWidth );
   
   // count zero bytes
@@ -69,7 +83,14 @@
       nZeroBytes++;
   
-  NETPRINTF(n)( "ZEROBYTES: %d (%f%%)\n", nZeroBytes, ((float)100)*nZeroBytes/length );
-}
-
+  //NETPRINTF(n)( "ZEROBYTES: %d (%f%%)\n", nZeroBytes, ((float)100)*nZeroBytes/length );
+}
+
+/**
+ * process unzipped incoming packet
+ * @param data pointer to packet data
+ * @param length length of packet
+ * @param stateId packet's state id
+ * @param ackedState state which was acked by this packet
+ */
 void ConnectionMonitor::processUnzippedIncomingPacket( byte * data, int length, int stateId, int ackedState )
 {
@@ -102,5 +123,5 @@
     ping /= ackDelay.size();
       
-  NETPRINTF(n)("PING: user: %d ping: %d\n", userId, ping );
+  //NETPRINTF(n)("PING: user: %d ping: %d\n", userId, ping );
   
   // calculate bandwidth
@@ -108,8 +129,14 @@
   incomingUnzippedBandWidth = calculateBandWidth( incomingUnzippedPacketHistory, tick );
   
-  NETPRINTF(n)("UNZIPPED DOWNSTREAM: user: %d bandwidth %f\n", userId, incomingUnzippedBandWidth );
-  
-}
-
+  //NETPRINTF(n)("UNZIPPED DOWNSTREAM: user: %d bandwidth %f\n", userId, incomingUnzippedBandWidth );
+  
+}
+
+/**
+ * calculate bandwidth out of packethistory
+ * @param packetHistory packet history
+ * @param tick current tick from SDL_GetTicks
+ * @return bandwidth in bytes/sec
+ */
 float ConnectionMonitor::calculateBandWidth( std::map< int, int > packetHistory, int tick )
 {
@@ -136,6 +163,10 @@
 
 
-
-
+/**
+ * process zipped outgoing packet
+ * @param data pointer to packet data
+ * @param length length of packet
+ * @param stateId packet's state id
+ */
 void ConnectionMonitor::processZippedOutgoingPacket( byte * data, int length, int stateId )
 {
@@ -148,9 +179,21 @@
   outgoingZippedBandWidth = calculateBandWidth( outgoingZippedPacketHistory, tick );
   
-  NETPRINTF(n)("UPSTREAM: user: %d bandwidth %f nOutgoingPackets %d\n", userId, outgoingZippedBandWidth, nOutgoingPackets );
-
-}
-
-
+  //NETPRINTF(n)("UPSTREAM: user: %d bandwidth %f nOutgoingPackets %d\n", userId, outgoingZippedBandWidth, nOutgoingPackets );
+
+  if ( lastPrintTick < tick-1000 )
+  {
+    printStatis();
+    lastPrintTick = tick;
+  }
+}
+
+
+/**
+ * process zipped incoming packet
+ * @param data pointer to packet data
+ * @param length length of packet
+ * @param stateId packet's state id
+ * @param ackedState state which was acked by this packet
+ */
 void ConnectionMonitor::processZippedIncomingPacket( byte * data, int length, int stateId, int ackedState )
 {
@@ -163,9 +206,13 @@
   incomingZippedBandWidth = calculateBandWidth( incomingZippedPacketHistory, tick );
   
-  NETPRINTF(n)("DOWNSTREAM: user: %d bandwidth %f nIncomingPackets %d\n", userId, incomingZippedBandWidth, nIncomingPackets );
-  
-}
-
-
+  //NETPRINTF(n)("DOWNSTREAM: user: %d bandwidth %f nIncomingPackets %d\n", userId, incomingZippedBandWidth, nIncomingPackets );
+  
+}
+
+
+/**
+ * check if client sent no packets for SECS_TO_TIMEOUT
+ * @return true if last packet recieved \< NOW() - SECS_TO_TIMEOUT
+ */
 bool ConnectionMonitor::hasTimedOut( )
 {
@@ -180,2 +227,15 @@
 
 
+
+/**
+ * prints bandwith usage, ping and other important things to telnet-console
+ */
+void ConnectionMonitor::printStatis( )
+{
+  NETPRINT(n)("=========NETWORKSTATS FOR USER %d=========\n", userId);
+  NETPRINT(n)("PING = %d\n", ping);
+  NETPRINT(n)("BANDWIDTH: UP: %f (%f) DOWN %f (%f)\n", outgoingZippedBandWidth, outgoingUnzippedBandWidth, incomingZippedBandWidth, incomingUnzippedBandWidth);
+  NETPRINT(n)("==========================================");
+}
+
+
Index: branches/network/src/lib/network/connection_monitor.h
===================================================================
--- branches/network/src/lib/network/connection_monitor.h	(revision 7916)
+++ branches/network/src/lib/network/connection_monitor.h	(revision 7952)
@@ -32,4 +32,6 @@
     bool hasTimedOut();
     
+    void printStatis();
+    
   private:
     float calculateBandWidth( std::map<int,int> packetHistory, int tick );
@@ -61,4 +63,6 @@
     
     int                 lastPacketTick;
+    
+    int                 lastPrintTick;
   };
 
Index: branches/network/src/lib/network/network_stream.cc
===================================================================
--- branches/network/src/lib/network/network_stream.cc	(revision 7916)
+++ branches/network/src/lib/network/network_stream.cc	(revision 7952)
@@ -454,5 +454,5 @@
       
       //check if all bytes == 0 -> remove data 
-
+      //TODO not all synchronizeables like this maybe add Synchronizeable::canRemoveZeroDiff()
       bool allZero = true; 
       for ( int i = 0; i < n; i++ ) 
@@ -464,5 +464,5 @@
       if ( allZero ) 
       { 
-        NETPRINTF(n)("REMOVE ZERO DIFF: %s (%d)\n", sync.getClassName(), sync.getUniqueID()); 
+        //NETPRINTF(n)("REMOVE ZERO DIFF: %s (%d)\n", sync.getClassName(), sync.getUniqueID()); 
         offset = oldOffset; 
       } 
@@ -499,5 +499,5 @@
     peer->second.connectionMonitor->processZippedOutgoingPacket( compBuf, compLength, currentState );
     
-    NETPRINTF(n)("send packet: %d userId = %d\n", offset, peer->second.userId);
+    //NETPRINTF(n)("send packet: %d userId = %d\n", offset, peer->second.userId);
   }
 }
@@ -544,8 +544,8 @@
       assert( Converter::byteArrayToInt( buf + 2*INTSIZE, &fromState ) == INTSIZE );
       assert( Converter::byteArrayToInt( buf + 3*INTSIZE, &ackedState ) == INTSIZE );
-      NETPRINTF(n)("ackedstate: %d\n", ackedState);
+      //NETPRINTF(n)("ackedstate: %d\n", ackedState);
       offset = 4*INTSIZE;
 
-      NETPRINTF(n)("got packet: %d, %d\n", length, packetLength);
+      //NETPRINTF(n)("got packet: %d, %d\n", length, packetLength);
     
     //if this is an old state drop it
