Index: code/branches/FICN/src/network/ClientInformation.cc
===================================================================
--- code/branches/FICN/src/network/ClientInformation.cc	(revision 632)
+++ code/branches/FICN/src/network/ClientInformation.cc	(revision 636)
@@ -47,4 +47,5 @@
   nexte=0;
   this->head=false;
+  synched_=false;
 }
 
@@ -55,4 +56,5 @@
   nexte=0;
   this->head=head;
+  synched_=false;
 }
 //
@@ -220,3 +222,10 @@
 }
 
-}
+void ClientInformation::setSynched(bool s){
+  synched_=s;
+}
+bool ClientInformation::getSynched(){
+  return synched_;
+}
+
+}
Index: code/branches/FICN/src/network/ClientInformation.h
===================================================================
--- code/branches/FICN/src/network/ClientInformation.h	(revision 632)
+++ code/branches/FICN/src/network/ClientInformation.h	(revision 636)
@@ -48,4 +48,8 @@
   ClientInformation *findClient(int clientID, bool look_backwards=false);
   ClientInformation *findClient(ENetAddress *address, bool look_backwards=false);
+  
+  void setSynched(bool s);
+  bool getSynched();
+  
   bool head;
   
@@ -57,4 +61,5 @@
   int clientID_;
   int gamestateID_;
+  bool synched_;
 };
 
Index: code/branches/FICN/src/network/ConnectionManager.cc
===================================================================
--- code/branches/FICN/src/network/ConnectionManager.cc	(revision 632)
+++ code/branches/FICN/src/network/ConnectionManager.cc	(revision 636)
@@ -233,5 +233,7 @@
       temp->setID(temp->prev()->getID()+1);
     temp->setPeer(event->peer);
-    std::cout << "added client id: " << temp->prev()->getID() << std::endl;
+    std::cout << "added client id: " << temp->getID() << std::endl;
+    syncClassid(temp->getID());
+    temp->setSynched(true);
     return true;
   }
@@ -256,6 +258,13 @@
     while(!abort){
       id = ID(i);
-      if(id == NULL)
-        abort=true;
+      std::cout << "syncid: " << i << ", ID(id): " << id << std::endl;
+      if(id == NULL){
+        if(i!=0)
+          abort=true;
+        else{
+          ++i;
+          continue;
+        }
+      }
       else{
         classname = id->getName();
Index: code/branches/FICN/src/network/GameStateClient.cc
===================================================================
--- code/branches/FICN/src/network/GameStateClient.cc	(revision 632)
+++ code/branches/FICN/src/network/GameStateClient.cc	(revision 636)
@@ -88,4 +88,5 @@
       }
       if(it==0){
+        std::cout << "classid: " << sync.classID << ", name: " << ID(sync.classID)->getName() << std::endl;
         orxonox::BaseObject *no = ID(sync.classID)->fabricate();
         ((Synchronisable *)no)->objectID=sync.objectID;
Index: code/branches/FICN/src/network/PacketDecoder.cc
===================================================================
--- code/branches/FICN/src/network/PacketDecoder.cc	(revision 632)
+++ code/branches/FICN/src/network/PacketDecoder.cc	(revision 636)
@@ -186,4 +186,7 @@
         cid->clid = ((classid *)(packet->data))->clid;
         cid->message = (const char *)malloc(cid->length);
+        void *data  = (void *)cid->message;
+        memcpy(data, (const void*)(packet->data+3*sizeof(int)), cid->length);
+        std::cout << "classid: " << cid->clid << ", name: " << cid->message << std::endl;
         enet_packet_destroy( packet );
         processClassid(cid);
Index: code/branches/FICN/src/network/PacketGenerator.cc
===================================================================
--- code/branches/FICN/src/network/PacketGenerator.cc	(revision 632)
+++ code/branches/FICN/src/network/PacketGenerator.cc	(revision 636)
@@ -128,4 +128,5 @@
 ENetPacket* PacketGenerator::clid( int classid, std::string classname, int reliable ){
         unsigned char* data = (unsigned char *)malloc(3*sizeof(int)+classname.length()+1);
+        std::cout << "classid: " << classid << ", name: " << classname << std::endl;
         *(int *)data = CLASSID;
         *((int *)data+1) = classname.length()+1;
Index: code/branches/FICN/src/network/Server.cc
===================================================================
--- code/branches/FICN/src/network/Server.cc	(revision 632)
+++ code/branches/FICN/src/network/Server.cc	(revision 636)
@@ -142,4 +142,9 @@
         continue;
       }
+      if( !(temp->getSynched()) ){
+        std::cout << "not sending gamestate" << std::endl;
+        temp=temp->next();
+        continue;
+      }
       std::cout << "doing gamestate" << std::endl;
       int gid = temp->getGamestateID();
