Index: code/trunk/src/network/Client.cc
===================================================================
--- code/trunk/src/network/Client.cc	(revision 1765)
+++ code/trunk/src/network/Client.cc	(revision 1767)
@@ -100,9 +100,5 @@
     Synchronisable::setClient(true);
     isConnected=client_connection.createConnection();
-    if(isConnected){
-//       COUT(3) << "sending connectrequest" << std::endl;
-//       if(!client_connection.addPacket(pck_gen.generateConnectRequest()) || !client_connection.sendPackets())
-//         COUT(1) << "could not send connection request !!!!!!!!!" << std::endl;
-    }else
+    if(!isConnected)
       COUT(1) << "could not create connection laber" << std::endl;
     return isConnected;
Index: code/trunk/src/network/GamestateClient.cc
===================================================================
--- code/trunk/src/network/GamestateClient.cc	(revision 1765)
+++ code/trunk/src/network/GamestateClient.cc	(revision 1767)
@@ -76,10 +76,11 @@
     bool b = saveShipCache();
     packet::Gamestate *processed = processGamestate(tempGamestate_);
-    assert(processed);
+    if(!processed)
+      return GAMESTATEID_INITIAL;
+//    assert(processed);
     //successfully loaded data from gamestate. now save gamestate for diff and delete the old gs
     tempGamestate_=0;
     gamestateMap_[processed->getID()]=processed;
-    last_diff_ = processed->getBaseID();
-    last_gamestate_ = processed->getID();
+    last_diff_ = processed->getID();
     if(b)
       loadShipCache();
@@ -103,5 +104,5 @@
   packet::Gamestate *GamestateClient::getGamestate(){
     packet::Gamestate *gs = new packet::Gamestate();
-    gs->collectData(GAMESTATEID_INITIAL);
+    gs->collectData(0);
     return gs;
   }
@@ -133,4 +134,5 @@
     if(myShip_==NULL){
       myShip_ = orxonox::SpaceShip::getLocalShip();
+//      COUT(2) << "myShip_: " << myShip_ << " getLocalShip(): " << orxonox::SpaceShip::getLocalShip() << std::endl;
       if(!myShip_)
 	return false;
@@ -151,5 +153,7 @@
 
   bool GamestateClient::loadShipCache(){
+    myShip_=orxonox::SpaceShip::getLocalShip(); //TODO: remove this (only a hack)
     if(myShip_ && shipCache_){
+      assert(myShip_->getIdentifier());
       unsigned char *temp = shipCache_;
       myShip_->updateData(temp, 0x2);
@@ -165,5 +169,7 @@
     if(gs->isDiffed()){
       packet::Gamestate *base = gamestateMap_[gs->getBaseID()];
-      assert(base);
+      if(!base)
+        return 0;
+//      assert(base); //TODO: fix this
       packet::Gamestate *undiffed = gs->undiff(base);
       delete gs;
Index: code/trunk/src/network/packet/Gamestate.cc
===================================================================
--- code/trunk/src/network/packet/Gamestate.cc	(revision 1765)
+++ code/trunk/src/network/packet/Gamestate.cc	(revision 1767)
@@ -144,4 +144,10 @@
           return false;
         it=orxonox::ObjectList<Synchronisable>::end();
+      }else{
+	if(! it->updateData(mem, mode))
+        {
+          COUT(1) << "We couldn't update objectID: " \
+            << objectID << "; classID: " << classID << std::endl;
+        }
       }
     } else
Index: code/trunk/src/orxonox/objects/SpaceShip.cc
===================================================================
--- code/trunk/src/orxonox/objects/SpaceShip.cc	(revision 1765)
+++ code/trunk/src/orxonox/objects/SpaceShip.cc	(revision 1767)
@@ -77,8 +77,9 @@
       for(it = ObjectList<SpaceShip>::begin(); it; ++it){
 	assert(it->isA(Class(SpaceShip)));
-        if( (it)->myShip_ || (network::Host::running() && network::Host::getShipID()==(it)->objectID) )
+        if( (it)->myShip_ || (network::Host::running() && network::Host::getShipID()==(it)->objectID) ){
+//	  COUT(1) << "^^^^^^^^^^ myShip_:" << *it << " classname: " << (*it)->getIdentifier()->getName() << " objectid: " << (*it)->objectID << std::endl;
           return *it;
+	}
       }
-      return 0;
       return 0;
     }
@@ -167,5 +168,5 @@
       if(!myShip_){
         if(network::Host::running())
-          COUT(3) << "this id: " << this->objectID << " myShipID: " << network::Host::getShipID() << std::endl;
+//          COUT(3) << "this id: " << this->objectID << " myShipID: " << network::Host::getShipID() << std::endl;
         if(network::Host::running() && objectID == network::Host::getShipID()){
           if(!network::Host::isServer())
