Index: trunk/src/lib/network/handshake.cc
===================================================================
--- trunk/src/lib/network/handshake.cc	(revision 9110)
+++ trunk/src/lib/network/handshake.cc	(revision 9235)
@@ -43,4 +43,6 @@
 
   candel_id = registerVarId( new SynchronizeableInt( &localState.canDel, &remoteState.canDel, "canDel", PERMISSION_ALL ) );
+  
+  registerVar( new SynchronizeableString( &localState.preferedNickName, &remoteState.preferedNickName, "preferedNickName", PERMISSION_ALL ) );
 
   localState.completed = 0;
Index: trunk/src/lib/network/handshake.h
===================================================================
--- trunk/src/lib/network/handshake.h	(revision 9110)
+++ trunk/src/lib/network/handshake.h	(revision 9235)
@@ -28,4 +28,7 @@
   
   std::string errorString;
+  
+  //additional data
+  std::string preferedNickName;
 };
 
@@ -43,4 +46,7 @@
     inline bool       allowDel(){ return localState.canDel == 1; }
     inline void       del(){ localState.canDel = 1; }
+    
+    inline void       setPreferedNickName( const std::string & nick ){ localState.preferedNickName = nick; }
+    inline std::string getPreferedNickName(){ return remoteState.preferedNickName; }
     
     virtual void varChangeHandler( std::list<int> & id );
Index: trunk/src/lib/network/network_game_manager.cc
===================================================================
--- trunk/src/lib/network/network_game_manager.cc	(revision 9110)
+++ trunk/src/lib/network/network_game_manager.cc	(revision 9235)
@@ -42,4 +42,6 @@
 #include "multiplayer_team_deathmatch.h"
 
+#include "preferences.h"
+
 
 /* using namespace std is default, this needs to be here */
@@ -99,4 +101,5 @@
   std::string playableModel = rules.getPlayableModelFileName( userId, team, playableClassId );
   std::string playableTexture = rules.getPlayableModelFileName( userId, team, playableClassId );
+  float       playableScale = rules.getPlayableScale( userId, team, playableClassId );
   
   BaseObject * bo = Factory::fabricate( playableClassId );
@@ -107,8 +110,7 @@
   Playable & playable = *(dynamic_cast<Playable*>(bo));
   
-  if ( playableTexture != "" )
-    playable.loadMD2Texture( playableTexture );
-  if ( playableModel != "" )
-    playable.loadModel( playableModel );
+  playable.loadMD2Texture( playableTexture );
+  
+  playable.loadModel( playableModel, 100.0f );
   playable.setOwner( userId );
   playable.setUniqueID( SharedNetworkData::getInstance()->getNewUniqueID() );
@@ -125,4 +127,7 @@
   stats->setPlayableUniqueId( playable.getUniqueID() );
   stats->setModelFileName( playableModel );
+  
+  if ( userId == 0 )
+    stats->setNickName( Preferences::getInstance()->getString( "multiplayer", "nickname", "Server" ) );
   
   if ( rules.isA( CL_MULTIPLAYER_TEAM_DEATHMATCH ) )
Index: trunk/src/lib/network/network_stream.cc
===================================================================
--- trunk/src/lib/network/network_stream.cc	(revision 9110)
+++ trunk/src/lib/network/network_stream.cc	(revision 9235)
@@ -37,4 +37,5 @@
 #include "network_log.h"
 
+#include "player_stats.h"
 
 #include "lib/util/loading/factory.h"
@@ -153,4 +154,7 @@
   assert( peers[0].handshake == NULL );
   peers[0].handshake = hs;
+  
+  hs->setPreferedNickName( Preferences::getInstance()->getString( "multiplayer", "nickname", "Player" ) );
+  
 //   peers[0].handshake->setSynchronized( true );
   //this->connectSynchronizeable(*hs);
@@ -392,4 +396,9 @@
               {
                 handleNewClient( it->second.userId );
+                
+                if ( PlayerStats::getStats( it->second.userId ) && it->second.handshake->getPreferedNickName() != "" )
+                {
+                  PlayerStats::getStats( it->second.userId )->setNickName( it->second.handshake->getPreferedNickName() );
+                }
               }
               
Index: trunk/src/lib/network/player_stats.cc
===================================================================
--- trunk/src/lib/network/player_stats.cc	(revision 9110)
+++ trunk/src/lib/network/player_stats.cc	(revision 9235)
@@ -22,4 +22,6 @@
 #include "state.h"
 #include "shared_network_data.h"
+
+#include "preferences.h"
 
 #include "debug.h"
@@ -187,5 +189,5 @@
 void PlayerStats::setNickName( std::string nick )
 {
-  if ( isServer() )
+  if ( SharedNetworkData::getInstance()->isGameServer() )
   {
     this->nickName = nick;
@@ -226,4 +228,6 @@
   if ( getStats( SharedNetworkData::getInstance()->getHostID() ) )
     getStats( SharedNetworkData::getInstance()->getHostID() )->setNickName( newNick );
+    
+  Preferences::getInstance()->setString( "multiplayer", "nickname", newNick );
 }
 
