Index: /branches/proxy/src/lib/network/monitor/network_monitor.cc
===================================================================
--- /branches/proxy/src/lib/network/monitor/network_monitor.cc	(revision 9403)
+++ /branches/proxy/src/lib/network/monitor/network_monitor.cc	(revision 9404)
@@ -33,5 +33,5 @@
 SHELL_COMMAND(showGUI, NetworkMonitor, showGUI);
 SHELL_COMMAND(hideGUI, NetworkMonitor, hideGUI);
-// SHELL_COMMAND(output, MappedWater, saveParams);
+SHELL_COMMAND(debug, NetworkMonitor, debug);
 
 
@@ -106,6 +106,8 @@
     if( *it == node)
     {
+      if( node->getNodeType() == NET_CLIENT)
+        this->playerNumber--;
+
       this->nodeList.erase(it);
-      this->playerNumber--;
       return;
     }
Index: /branches/proxy/src/lib/network/monitor/network_monitor.h
===================================================================
--- /branches/proxy/src/lib/network/monitor/network_monitor.h	(revision 9403)
+++ /branches/proxy/src/lib/network/monitor/network_monitor.h	(revision 9404)
@@ -65,5 +65,5 @@
     inline int getPlayerNumber() { return this->playerNumber; }
 
-    /** @returns true if there are still free network slots available */
+    /** @returns true if there are still free network slots available at the local node*/
     inline bool gotFreeSlots() { return (this->localNode->getPlayerNumber() < SharedNetworkData::getInstance()->getMaxPlayer())?true:false; }
     /** @param node node to be checked for slots @returns true if there are still free network slots available at this node */
@@ -89,4 +89,5 @@
 
     int                          playerNumber;                 //!< total number of players in the game
+    int                          connectionNumber;             //!< total number of connections at this localhost
 };
 
Index: /branches/proxy/src/lib/network/monitor/network_node.cc
===================================================================
--- /branches/proxy/src/lib/network/monitor/network_node.cc	(revision 9403)
+++ /branches/proxy/src/lib/network/monitor/network_node.cc	(revision 9404)
@@ -43,4 +43,5 @@
   this->clientList.push_back(node);
   this->playerNumber++;
+  this->connectionNumber++;
 }
 
@@ -51,5 +52,5 @@
 {
   this->activeProxyServerList.push_back(node);
-  this->playerNumber++;
+  this->connectionNumber++;
 }
 
Index: /branches/proxy/src/lib/network/monitor/network_node.h
===================================================================
--- /branches/proxy/src/lib/network/monitor/network_node.h	(revision 9403)
+++ /branches/proxy/src/lib/network/monitor/network_node.h	(revision 9404)
@@ -59,4 +59,5 @@
   private:
     int                          playerNumber;                 //!< localy direct connected player number
+    int                          connectionNumber;             //!< number of connections ( can but musn't be equal players)
     PeerInfo*                    peerInfo;                     //!< the peer informationa about this node
 
Index: /branches/proxy/src/lib/network/network_manager.cc
===================================================================
--- /branches/proxy/src/lib/network/network_manager.cc	(revision 9403)
+++ /branches/proxy/src/lib/network/network_manager.cc	(revision 9404)
@@ -105,7 +105,4 @@
 int NetworkManager::createMasterServer(unsigned int port)
 {
-  // init the proxy settings data do this before everything else is done here
-  NetworkSettings::getInstance()->loadData();
-
   // create the network stream
   this->networkStream = new NetworkStream(NET_MASTER_SERVER);
Index: /branches/proxy/src/lib/network/network_stream.cc
===================================================================
--- /branches/proxy/src/lib/network/network_stream.cc	(revision 9403)
+++ /branches/proxy/src/lib/network/network_stream.cc	(revision 9404)
@@ -720,5 +720,5 @@
       // server fakes uniqueid == 0 for handshake
       if ( ( SharedNetworkData::getInstance()->isMasterServer() || SharedNetworkData::getInstance()->isProxyServer() ) &&
-             sync.getUniqueID() <= SharedNetworkData::getInstance()->getMaxPlayer())
+             sync.getUniqueID() <= SharedNetworkData::getInstance()->getMaxPlayer() + 1) // plus one to handle one client more than the max to redirect it
         n = Converter::intToByteArray( 0, buf + offset, UDP_PACKET_SIZE - offset );
       else
