Index: branches/proxy/src/lib/network/Makefile.am
===================================================================
--- branches/proxy/src/lib/network/Makefile.am	(revision 9534)
+++ branches/proxy/src/lib/network/Makefile.am	(revision 9537)
@@ -27,4 +27,5 @@
 		      \
 		      proxy/network_settings.cc \
+		      proxy/proxy_control.cc \
 		      \
 		      monitor/connection_monitor.cc \
@@ -76,5 +77,6 @@
 		udp_broadcast.h \
 		\
-		proxy/network_settings.cc \
+		proxy/network_settings.h \
+		proxy/proxy_control.h \
 		\
 		monitor/connection_monitor.h \
Index: branches/proxy/src/lib/network/network_game_manager.cc
===================================================================
--- branches/proxy/src/lib/network/network_game_manager.cc	(revision 9534)
+++ branches/proxy/src/lib/network/network_game_manager.cc	(revision 9537)
@@ -97,9 +97,9 @@
   NetworkGameRules & rules = *(dynamic_cast<NetworkGameRules*>(State::getGameRules()));
 
-  int team = rules.getTeamForNewUser();
-  ClassID playableClassId = rules.getPlayableClassId( userId, team );
-  std::string playableModel = rules.getPlayableModelFileName( userId, team, playableClassId );
-  std::string playableTexture = rules.getPlayableModelFileName( userId, team, playableClassId );
-  float       playableScale = rules.getPlayableScale( userId, team, playableClassId );
+  int          team = rules.getTeamForNewUser();
+  ClassID      playableClassId = rules.getPlayableClassId( userId, team );
+  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 );
Index: branches/proxy/src/lib/network/network_stream.cc
===================================================================
--- branches/proxy/src/lib/network/network_stream.cc	(revision 9534)
+++ branches/proxy/src/lib/network/network_stream.cc	(revision 9537)
@@ -645,10 +645,13 @@
                 this->networkMonitor->addNode(&it->second);
 
-                this->handleNewClient( it->second.userId );
-
-                if ( PlayerStats::getStats( it->second.userId ) && it->second.handshake->getPreferedNickName() != "" )
-                {
-                  PlayerStats::getStats( it->second.userId )->setNickName( it->second.handshake->getPreferedNickName() );
-                }
+                // work with the ProxyControl to init the new client
+
+
+//                 this->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: branches/proxy/src/lib/network/proxy/proxy_control.cc
===================================================================
--- branches/proxy/src/lib/network/proxy/proxy_control.cc	(revision 9537)
+++ branches/proxy/src/lib/network/proxy/proxy_control.cc	(revision 9537)
@@ -0,0 +1,72 @@
+/*
+   orxonox - the future of 3D-vertical-scrollers
+
+   Copyright (C) 2004 orx
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+### File Specific:
+   main-programmer: Patrick Boenzli (patrick@orxonox.ethz.ch)
+*/
+
+#include "proxy_control.h"
+
+#include "class_list.h"
+
+
+#include "player.h"
+#include "state.h"
+#include "shared_network_data.h"
+
+#include "converter.h"
+
+#include "preferences.h"
+
+#include "debug.h"
+
+
+
+
+ProxyControl* ProxyControl::singletonRef = NULL;
+
+
+/**
+ * constructor
+ */
+ProxyControl::ProxyControl()
+{
+  this->setClassID( CL_PROXY_CONTROL, "ProxyControl" );
+
+//   MessageManager::getInstance()->registerMessageHandler( MSGID_CHANGENICKNAME, changeNickHandler, NULL );
+
+  PRINTF(0)("ProxyControl created\n");
+}
+
+
+/**
+ * standard deconstructor
+ */
+ProxyControl::~ProxyControl()
+{
+  ProxyControl::singletonRef = NULL;
+}
+
+
+ /**
+ * override this function to be notified on change
+ * of your registred variables.
+ * @param id id's which have changed
+  */
+void ProxyControl::varChangeHandler( std::list< int > & id )
+{
+//   if ( std::find( id.begin(), id.end(), playableUniqueId_handle ) != id.end() )
+//   {
+//     this->setPlayableUniqueId( this->playableUniqueId );
+//
+//     PRINTF(0)("uniqueID changed %d %d %d\n", userId, SharedNetworkData::getInstance()->getHostID(), getUniqueID());
+//   }
+}
+
Index: branches/proxy/src/lib/network/proxy/proxy_control.h
===================================================================
--- branches/proxy/src/lib/network/proxy/proxy_control.h	(revision 9537)
+++ branches/proxy/src/lib/network/proxy/proxy_control.h	(revision 9537)
@@ -0,0 +1,40 @@
+/*!
+ * @file player_stats.h
+ * @brief Definition of ProxyControl
+ */
+
+#ifndef _PROXY_SETTINGS_H
+#define _PROXY_SETTINGS_H
+
+#include "synchronizeable.h"
+#include "message_manager.h"
+
+#include <string>
+#include <list>
+
+
+
+
+//! A class for storing player information
+class ProxyControl : public Synchronizeable
+{
+
+  public:
+    inline static ProxyControl* getInstance() { if (!ProxyControl::singletonRef) ProxyControl::singletonRef = new ProxyControl();
+      return ProxyControl::singletonRef; }
+    virtual ~ProxyControl();
+
+    virtual void varChangeHandler( std::list<int> & id );
+
+
+  private:
+    ProxyControl();
+
+
+  private:
+    static ProxyControl*      singletonRef;            //!< Pointer to the only instance of this Class
+
+
+};
+
+#endif /* _PROXY_SETTINGS_H */
