Index: branches/proxy/src/lib/network/network_game_manager.cc
===================================================================
--- branches/proxy/src/lib/network/network_game_manager.cc	(revision 9256)
+++ branches/proxy/src/lib/network/network_game_manager.cc	(revision 9257)
@@ -91,5 +91,5 @@
 bool NetworkGameManager::signalNewPlayer( int userId )
 {
-  assert( SharedNetworkData::getInstance()->isGameServer() );
+  assert( SharedNetworkData::getInstance()->isMasterServer() );
   assert( State::getGameRules() );
   assert( State::getGameRules()->isA( CL_NETWORK_GAME_RULES ) );
Index: branches/proxy/src/lib/network/network_manager.cc
===================================================================
--- branches/proxy/src/lib/network/network_manager.cc	(revision 9256)
+++ branches/proxy/src/lib/network/network_manager.cc	(revision 9257)
@@ -53,8 +53,8 @@
   this->networkStream = NULL;
   this->elapsedTime = 0.0f;
-  
-    
+
+
   int port = Preferences::getInstance()->getInt( "network", "telnetport", 0 );
-  
+
   if ( port > 0 )
     NetworkLog::getInstance()->listen( port );
@@ -75,5 +75,5 @@
     this->networkStream = NULL;
   }
-  
+
   NetworkManager::singletonRef = NULL;
 }
@@ -118,5 +118,5 @@
 {
   SharedNetworkData::getInstance()->setHostID(0);
-  SharedNetworkData::getInstance()->setGameServer(true);
+  SharedNetworkData::getInstance()->setNodeType(NET_MASTER_SERVER);
   this->networkStream = new NetworkStream(port);
   SharedNetworkData::getInstance()->setDefaultSyncStream(this->networkStream);
@@ -148,5 +148,5 @@
   if ( networkStream )
     networkStream->processData();
-  
+
   NetworkGameManager::getInstance()->tick( this->elapsedTime );
 }
Index: branches/proxy/src/lib/network/network_manager.h
===================================================================
--- branches/proxy/src/lib/network/network_manager.h	(revision 9256)
+++ branches/proxy/src/lib/network/network_manager.h	(revision 9257)
@@ -41,5 +41,7 @@
     /** Returns the hostID @return The hostID of the object */
     inline int getHostID() { return SharedNetworkData::getInstance()->getHostID(); }
-    inline bool isGameServer() { return SharedNetworkData::getInstance()->isGameServer(); }
+    inline bool isMasterServer() { return SharedNetworkData::getInstance()->isMasterServer(); }
+    inline bool isProxyServer() { return SharedNetworkData::getInstance()->isProxyServer(); }
+    inline bool isClient() { return SharedNetworkData::getInstance()->isClient(); }
 
 
Index: branches/proxy/src/lib/network/player_stats.cc
===================================================================
--- branches/proxy/src/lib/network/player_stats.cc	(revision 9256)
+++ branches/proxy/src/lib/network/player_stats.cc	(revision 9257)
@@ -38,5 +38,5 @@
 {
   init();
-  
+
   this->userId = userId;
 }
@@ -62,5 +62,5 @@
   this->nickName = "Player";
   this->oldNickName = "Player";
-  
+
   userId_handle = registerVarId( new SynchronizeableInt( &userId, &userId, "userId" ) );
   teamId_handle = registerVarId( new SynchronizeableInt( &teamId, &teamId, "teamId" ) );
@@ -71,7 +71,7 @@
   modelFileName_handle = registerVarId( new SynchronizeableString( &modelFileName, &modelFileName, "modelFileName" ) );
   nickName_handler = registerVarId( new SynchronizeableString( &nickName, &nickName, "nickName" ) );
-  
+
   MessageManager::getInstance()->registerMessageHandler( MSGID_CHANGENICKNAME, changeNickHandler, NULL );
-  
+
   PRINTF(0)("PlayerStats created\n");
 }
@@ -96,8 +96,8 @@
   {
     this->setPlayableUniqueId( this->playableUniqueId );
-    
+
     PRINTF(0)("uniqueID changed %d %d %d\n", userId, SharedNetworkData::getInstance()->getHostID(), getUniqueID());
   }
-  
+
   if ( std::find( id.begin(), id.end(), nickName_handler ) != id.end() )
   {
@@ -115,10 +115,10 @@
 {
   const std::list<BaseObject*> * list = ClassList::getList( CL_PLAYER_STATS );
-  
+
   if ( !list )
   {
     return NULL;
   }
-  
+
   for ( std::list<BaseObject*>::const_iterator it = list->begin(); it != list->end(); it++ )
   {
@@ -128,5 +128,5 @@
     }
   }
-  
+
   return NULL;
 }
@@ -138,5 +138,5 @@
 {
   const std::list<BaseObject*> * list = ClassList::getList( CL_PLAYABLE );
-  
+
   if ( !list )
   {
@@ -144,5 +144,5 @@
     return;
   }
-  
+
   this->playable = NULL;
   for ( std::list<BaseObject*>::const_iterator it = list->begin(); it != list->end(); it++ )
@@ -156,10 +156,10 @@
     }
   }
-  
+
   if ( this->playable && userId == SharedNetworkData::getInstance()->getHostID() )
   {
     State::getPlayer()->setPlayable( this->playable );
   }
-  
+
   this->playableUniqueId = uniqueId;
 }
@@ -173,11 +173,11 @@
   if ( playable )
     return playable;
-  
+
   assert( playableUniqueId > 0 );
-  
+
   setPlayableUniqueId( playableUniqueId );
-  
+
   assert( playable );
-  
+
   return playable;
 }
@@ -189,5 +189,5 @@
 void PlayerStats::setNickName( std::string nick )
 {
-  if ( SharedNetworkData::getInstance()->isGameServer() )
+  if ( SharedNetworkData::getInstance()->isMasterServer() )
   {
     this->nickName = nick;
@@ -199,7 +199,7 @@
   {
     byte * data = new byte[nick.length()+INTSIZE];
-    
+
     assert( Converter::stringToByteArray( nick, data, nick.length()+INTSIZE) == nick.length()+INTSIZE );
-    
+
     MessageManager::getInstance()->sendMessage( MSGID_CHANGENICKNAME, data, nick.length()+INTSIZE, RT_SERVER, 0, MP_HIGHBANDWIDTH );
     return;
@@ -211,5 +211,5 @@
   std::string newNick;
   int res = Converter::byteArrayToString( data, newNick, dataLength );
-  
+
   if ( res != dataLength )
   {
@@ -217,8 +217,8 @@
     newNick = "invalid";
   }
-  
+
   if ( PlayerStats::getStats( userId ) )
     PlayerStats::getStats( userId )->setNickName( newNick );
-  
+
   return true;
 }
@@ -228,5 +228,5 @@
   if ( getStats( SharedNetworkData::getInstance()->getHostID() ) )
     getStats( SharedNetworkData::getInstance()->getHostID() )->setNickName( newNick );
-    
+
   Preferences::getInstance()->setString( "multiplayer", "nickname", newNick );
 }
@@ -237,5 +237,5 @@
 {
   const std::list<BaseObject*> * list;
-  
+
   while ( (list  = ClassList::getList( CL_PLAYER_STATS )) != NULL && list->begin() != list->end() )
     delete *list->begin();
@@ -247,30 +247,30 @@
 {
   ScoreList result;
-  
+
   const std::list<BaseObject*> * list = ClassList::getList( CL_PLAYER_STATS );
-  
+
   if ( !list )
   {
     return result;
   }
-  
+
   for ( std::list<BaseObject*>::const_iterator it = list->begin(); it != list->end(); it++ )
   {
     PlayerStats & stats = *dynamic_cast<PlayerStats*>(*it);
-    
+
     TeamScoreList::iterator it = result[stats.getTeamId()].begin();
-    
+
     while (  it != result[stats.getTeamId()].end() && stats.score > it->score )
     {
       it++;
     }
-    
+
     PlayerScore score;
     score.name = stats.getNickName();
     score.score = stats.getScore();
-    
+
     result[stats.getTeamId()].insert(it, score);
   }
-  
+
   return result;
 }
Index: branches/proxy/src/lib/network/shared_network_data.cc
===================================================================
--- branches/proxy/src/lib/network/shared_network_data.cc	(revision 9256)
+++ branches/proxy/src/lib/network/shared_network_data.cc	(revision 9257)
@@ -36,5 +36,5 @@
   this->defaultSyncStream = NULL;
   this->newUniqueID = MAX_CONNECTIONS + 2;
-  this->bGameServer = false;
+  this->nodeType = NET_CLIENT;
 }
 
Index: branches/proxy/src/lib/network/shared_network_data.h
===================================================================
--- branches/proxy/src/lib/network/shared_network_data.h	(revision 9256)
+++ branches/proxy/src/lib/network/shared_network_data.h	(revision 9257)
@@ -8,4 +8,5 @@
 
 #include "base_object.h"
+#include "netdefs.h"
 
 
@@ -25,10 +26,14 @@
 
     /** @returns the next uniqueID free for an object */
-    inline int getNewUniqueID() { return ( this->bGameServer)?this->newUniqueID++:-1; }
+    inline int getNewUniqueID() { return ( this->nodeType != NET_CLIENT)?this->newUniqueID++:-1; }
 
-    /** @returns true is this node is a game server */
-    inline bool isGameServer() { return this->bGameServer; }
+    /** @returns true is this node is a master server */
+    inline bool isMasterServer() { return this->nodeType == NET_MASTER_SERVER; }
+    /** @returns true is this node is a proxy server */
+    inline bool isProxyServer() { return this->nodeType == NET_PROXY_SERVER; }
+    /** @returns true is this node is a client*/
+    inline bool isClient() { return this->nodeType == NET_CLIENT; }
     /** sets the game server flag @param bGameServer true if it is a game server */
-    inline void setGameServer(bool bGameServer) { this->bGameServer = bGameServer; }
+    inline void setNodeType(int nodeType) { this->nodeType = nodeType; }
 
     /** @returns the hostID of the node */
@@ -49,5 +54,6 @@
   private:
     int                             newUniqueID;             //!< next uniqueID
-    bool                            bGameServer;             //!< true if it is a server
+    int                             nodeType;                //!< saves the node type here
+
     int                             hostID;                  //!< The Host-ID of the Manager
     NetworkStream*                  defaultSyncStream;       //!< default synchronize NetworkStream
