Index: branches/proxy/src/lib/network/handshake.cc
===================================================================
--- branches/proxy/src/lib/network/handshake.cc	(revision 9271)
+++ branches/proxy/src/lib/network/handshake.cc	(revision 9272)
@@ -30,6 +30,4 @@
   /* set the class id for the base object */
   this->setClassID(CL_HANDSHAKE, "Handshake");
-
-  this->setIsServer( nodeType == NET_MASTER_SERVER);
 
   // register all variable handlers
Index: branches/proxy/src/lib/network/network_game_manager.cc
===================================================================
--- branches/proxy/src/lib/network/network_game_manager.cc	(revision 9271)
+++ branches/proxy/src/lib/network/network_game_manager.cc	(revision 9272)
@@ -168,5 +168,5 @@
 bool NetworkGameManager::delSynchronizeableHandler( MessageId messageId, byte * data, int dataLength, void * someData, int userId )
 {
-  if ( getInstance()->isServer() )
+  if ( SharedNetworkData::getInstance()->isMasterServer() )
   {
     PRINTF(2)("Recieved DeleteSynchronizeable message from client %d!\n", userId);
@@ -229,5 +229,5 @@
 bool NetworkGameManager::preferedTeamHandler( MessageId messageId, byte * data, int dataLength, void * someData, int userId )
 {
-  assert( NetworkGameManager::getInstance()->isServer() );
+  assert( SharedNetworkData::getInstance()->isMasterServer() );
 
   int teamId = 0;
@@ -261,5 +261,5 @@
 void NetworkGameManager::prefereTeam( int teamId )
 {
-  if ( isServer() )
+  if ( SharedNetworkData::getInstance()->isMasterServer() )
     setPreferedTeam( SharedNetworkData::getInstance()->getHostID(), teamId );
   else
@@ -305,5 +305,5 @@
 {
   PRINTF(0)("NetworkGameManager::chatMessageHandler %d %d\n", userId, SharedNetworkData::getInstance()->getHostID() );
-  if ( NetworkGameManager::getInstance()->isServer() && userId !=  SharedNetworkData::getInstance()->getHostID() )
+  if ( SharedNetworkData::getInstance()->isMasterServer() && userId !=  SharedNetworkData::getInstance()->getHostID() )
   {
     MessageManager::getInstance()->sendMessage( messageId, data, dataLength, RT_ALL_NOT_ME, 0, MP_HIGHBANDWIDTH );
@@ -347,5 +347,5 @@
   assert( Converter::stringToByteArray(message, buf+2*INTSIZE, message.length()+INTSIZE) == message.length()+INTSIZE );
 
-  if ( this->isServer() )
+  if ( SharedNetworkData::getInstance()->isMasterServer() )
     MessageManager::getInstance()->sendMessage( MSGID_CHATMESSAGE, buf, message.length()+3*INTSIZE, RT_ALL_ME, 0, MP_HIGHBANDWIDTH );
   else
Index: branches/proxy/src/lib/network/network_monitor.cc
===================================================================
--- branches/proxy/src/lib/network/network_monitor.cc	(revision 9271)
+++ branches/proxy/src/lib/network/network_monitor.cc	(revision 9272)
@@ -32,5 +32,5 @@
 NetworkMonitor::NetworkMonitor(NetworkStream* networkStream)
 {
-
+  this->playerNumber = 0;
 }
 
@@ -49,4 +49,5 @@
 {
   this->clientList.push_back(node);
+  this->playerNumber++;
 }
 
@@ -57,4 +58,5 @@
 {
   this->proxyServerList.push_back(node);
+  this->playerNumber++;
 }
 
@@ -65,4 +67,5 @@
 {
   this->masterServerList.push_back(node);
+  this->playerNumber++;
 }
 
@@ -78,4 +81,5 @@
     {
       this->clientList.erase(it);
+      this->playerNumber--;
       return;
     }
@@ -96,4 +100,5 @@
     {
       this->proxyServerList.erase(it);
+      this->playerNumber--;
       return;
     }
@@ -114,4 +119,5 @@
     {
       this->masterServerList.erase(it);
+      this->playerNumber--;
       return;
     }
Index: branches/proxy/src/lib/network/network_monitor.h
===================================================================
--- branches/proxy/src/lib/network/network_monitor.h	(revision 9271)
+++ branches/proxy/src/lib/network/network_monitor.h	(revision 9272)
@@ -45,4 +45,6 @@
 
     OrxGui::GLGuiBox*            box;
+
+    int                          playerNumber;                 //!< total number of players in the game
 };
 
Index: branches/proxy/src/lib/network/synchronizeable.cc
===================================================================
--- branches/proxy/src/lib/network/synchronizeable.cc	(revision 9271)
+++ branches/proxy/src/lib/network/synchronizeable.cc	(revision 9272)
@@ -38,5 +38,5 @@
   this->setClassID(CL_SYNCHRONIZEABLE, "Synchronizeable");
   this->owner = 0;
-  this->setIsServer(SharedNetworkData::getInstance()->getHostID() == 0);
+//   this->setIsServer(SharedNetworkData::getInstance()->getHostID() == 0);
   this->uniqueID = NET_UID_UNASSIGNED;
   this->networkStream = NULL;
@@ -70,5 +70,5 @@
     this->networkStream->disconnectSynchronizeable(*this);
 
-    if ( this->isServer() && this->beSynchronized() && this->getUniqueID() > 0 && !this->isA( CL_MESSAGE_MANAGER ) )
+    if ( SharedNetworkData::getInstance()->isMasterServer() && this->beSynchronized() && this->getUniqueID() > 0 && !this->isA( CL_MESSAGE_MANAGER ) )
       NetworkGameManager::getInstance()->removeSynchronizeable( this->getUniqueID() );
   }
@@ -113,11 +113,11 @@
  * @param isServer: the boolean value which the server flag is to set to
  */
-void Synchronizeable::setIsServer(bool isServer)
-{
-  if( isServer )
-    this->state = this->state | STATE_SERVER;
-  else
-    this->state = this->state & (~STATE_SERVER);
-}
+// void Synchronizeable::setIsServer(bool isServer)
+// {
+//   if( isServer )
+//     this->state = this->state | STATE_SERVER;
+//   else
+//     this->state = this->state & (~STATE_SERVER);
+// }
 
 
@@ -126,8 +126,8 @@
  * @return true, if the server flag is true, false else
  */
-bool Synchronizeable::isServer()
-{
-  return (this->state & STATE_SERVER) >0;
-}
+// bool Synchronizeable::isServer()
+// {
+//   return (this->state & STATE_SERVER) >0;
+// }
 
 
@@ -222,7 +222,7 @@
   {
     hasPermission = (
-            this->isServer() && (*it)->checkPermission( PERMISSION_MASTER_SERVER ) ||
+        SharedNetworkData::getInstance()->isMasterServer() && (*it)->checkPermission( PERMISSION_MASTER_SERVER ) ||
         this->owner == SharedNetworkData::getInstance()->getHostID() && (*it)->checkPermission( PERMISSION_OWNER ) ||
-            this->isServer() && this->owner != userId && (*it)->checkPermission( PERMISSION_OWNER ) ||
+        SharedNetworkData::getInstance()->isMasterServer() && this->owner != userId && (*it)->checkPermission( PERMISSION_OWNER ) ||
             (*it)->checkPermission( PERMISSION_ALL )
                     );
Index: branches/proxy/src/lib/network/synchronizeable.h
===================================================================
--- branches/proxy/src/lib/network/synchronizeable.h	(revision 9271)
+++ branches/proxy/src/lib/network/synchronizeable.h	(revision 9272)
@@ -51,6 +51,6 @@
     virtual ~Synchronizeable();
 
-    void setIsServer( bool isServer );
-    bool isServer();
+//     void setIsServer( bool isServer );
+//     bool isServer();
 
     virtual void varChangeHandler( std::list<int> & id );
@@ -61,5 +61,5 @@
     virtual void handleSentState( int userId, int stateId, int fromStateId );
     virtual void handleRecvState( int userId, int stateId, int fromStateId );
-    
+
     void registerVar( SynchronizeableVar * var );
     int registerVarId( SynchronizeableVar * var );
@@ -82,5 +82,5 @@
   protected:
     NetworkStream*    networkStream;  //!< reference network stream we are connected to
-    int               state;
+//     int               state;
 
   private:
