Index: code/branches/core5/src/libraries/core/BaseObject.cc
===================================================================
--- code/branches/core5/src/libraries/core/BaseObject.cc	(revision 5838)
+++ code/branches/core5/src/libraries/core/BaseObject.cc	(revision 5839)
@@ -46,4 +46,5 @@
 #include "XMLNameListener.h"
 #include "XMLPort.h"
+#include "network/NetworkPrereqs.h"
 
 namespace orxonox
@@ -74,5 +75,5 @@
             this->setFile(this->creator_->getFile());
             this->setNamespace(this->creator_->getNamespace());
-            this->setScene(this->creator_->getScene());
+            this->setScene(this->creator_->getScene(), this->creator_->getSceneID());
             this->setGametype(this->creator_->getGametype());
         }
@@ -82,4 +83,5 @@
             this->namespace_ = 0;
             this->scene_ = 0;
+            this->sceneID_ = OBJECTID_UNKNOWN;
             this->gametype_ = 0;
         }
Index: code/branches/core5/src/libraries/core/BaseObject.h
===================================================================
--- code/branches/core5/src/libraries/core/BaseObject.h	(revision 5838)
+++ code/branches/core5/src/libraries/core/BaseObject.h	(revision 5839)
@@ -135,6 +135,7 @@
             inline BaseObject* getCreator() const { return this->creator_; }
 
-            inline void setScene(const SmartPtr<Scene>& scene) { this->scene_ = scene; }
+            inline void setScene(const SmartPtr<Scene>& scene, uint32_t sceneID) { this->scene_ = scene; this->sceneID_=sceneID; }
             inline const SmartPtr<Scene>& getScene() const { return this->scene_; }
+            inline virtual uint32_t getSceneID() const { return this->sceneID_; }
 
             inline void setGametype(const SmartPtr<Gametype>& gametype)
@@ -202,4 +203,5 @@
             std::list<BaseObject*> events_;
             std::map<std::string, EventContainer*> eventContainers_;
+            uint32_t               sceneID_;
     };
 
Index: code/branches/core5/src/libraries/network/synchronisable/Synchronisable.cc
===================================================================
--- code/branches/core5/src/libraries/network/synchronisable/Synchronisable.cc	(revision 5838)
+++ code/branches/core5/src/libraries/network/synchronisable/Synchronisable.cc	(revision 5839)
@@ -72,7 +72,10 @@
 
     // get creator id
-    this->creatorID = OBJECTID_UNKNOWN;
-
-    searchcreatorID:
+    if( creator )
+      this->creatorID = creator->getSceneID();
+    else
+      this->creatorID = OBJECTID_UNKNOWN;
+
+    /*searchcreatorID:
     if (creator)
     {
@@ -80,5 +83,5 @@
         if (synchronisable_creator && synchronisable_creator->objectMode_)
         {
-            this->creatorID = synchronisable_creator->getObjectID();
+            this->creatorID = synchronisable_creator->getScene()->getObjectID();
         }
         else if (creator != creator->getCreator())
@@ -87,5 +90,5 @@
             goto searchcreatorID;
         }
-    }
+    }*/
   }
 
@@ -173,6 +176,8 @@
     assert(no);
     no->objectID=header.getObjectID();
-    no->creatorID=header.getCreatorID(); //TODO: remove this
+    //no->creatorID=header.getCreatorID(); //TODO: remove this
     no->classID=header.getClassID();
+    assert(no->creatorID == header.getCreatorID());
+    //assert(no->classID == header.getClassID());
     COUT(4) << "fabricate objectID: " << no->objectID << " classID: " << no->classID << std::endl;
           // update data and create object/entity...
Index: code/branches/core5/src/orxonox/Scene.cc
===================================================================
--- code/branches/core5/src/orxonox/Scene.cc	(revision 5838)
+++ code/branches/core5/src/orxonox/Scene.cc	(revision 5839)
@@ -55,5 +55,5 @@
         RegisterObject(Scene);
 
-        this->setScene(SmartPtr<Scene>(this, false));
+        this->setScene(SmartPtr<Scene>(this, false), OBJECTID_UNKNOWN);
         this->bShadows_ = true;
 
@@ -283,5 +283,5 @@
     {
         this->objects_.push_back(object);
-        object->setScene(this);
+        object->setScene(this, this->getObjectID());
     }
 
Index: code/branches/core5/src/orxonox/Scene.h
===================================================================
--- code/branches/core5/src/orxonox/Scene.h	(revision 5838)
+++ code/branches/core5/src/orxonox/Scene.h	(revision 5839)
@@ -73,4 +73,6 @@
             inline Radar* getRadar()
                 { return this->radar_; }
+            
+            inline virtual uint32_t getSceneID() const { return this->getObjectID(); }
 
             virtual void tick(float dt);
