Index: code/branches/presentation/src/orxonox/objects/collisionshapes/CollisionShape.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/collisionshapes/CollisionShape.cc	(revision 2465)
+++ code/branches/presentation/src/orxonox/objects/collisionshapes/CollisionShape.cc	(revision 2469)
@@ -38,4 +38,5 @@
 
 #include "CompoundCollisionShape.h"
+#include "objects/worldentities/WorldEntity.h"
 
 namespace orxonox
@@ -55,4 +56,6 @@
         this->orientation_ = Quaternion::IDENTITY;
         this->scale_ = Vector3::UNIT_SCALE;
+
+        this->registerVariables();
     }
 
@@ -81,7 +84,14 @@
     void CollisionShape::parentChanged()
     {
-        CompoundCollisionShape* parent = dynamic_cast<CompoundCollisionShape*>(Synchronisable::getSynchronisable(this->parentID_));
-        if (parent)
-            parent->addChildShape(this);
+        Synchronisable* synchronisable = Synchronisable::getSynchronisable(this->parentID_);
+        CompoundCollisionShape* CCSparent = dynamic_cast<CompoundCollisionShape*>(synchronisable);
+        if (CCSparent)
+            CCSparent->addChildShape(this);
+        else
+        {
+            WorldEntity* WEparent = dynamic_cast<WorldEntity*>(synchronisable);
+            if (WEparent)
+                WEparent->attachCollisionShape(this);
+        }
     }
 
Index: code/branches/presentation/src/orxonox/objects/collisionshapes/CompoundCollisionShape.cc
===================================================================
--- code/branches/presentation/src/orxonox/objects/collisionshapes/CompoundCollisionShape.cc	(revision 2465)
+++ code/branches/presentation/src/orxonox/objects/collisionshapes/CompoundCollisionShape.cc	(revision 2469)
@@ -47,4 +47,5 @@
 
         this->compoundShape_  = new btCompoundShape();
+        this->worldEntityParent_ = 0;
     }
 
@@ -66,4 +67,12 @@
     }
 
+    void CompoundCollisionShape::setWorldEntityParent(WorldEntity* parent)
+    {
+        // suppress synchronisation
+        this->setObjectMode(0x0);
+
+        this->worldEntityParent_ = parent;
+    }
+
     void CompoundCollisionShape::addChildShape(CollisionShape* shape)
     {
@@ -87,5 +96,12 @@
 
         // network synchro
-        shape->setParent(this, this->getObjectID());
+        if (this->worldEntityParent_)
+        {
+            // This compound collision shape belongs to a WE and doesn't get synchronised
+            // So set our parent to be the WE
+            shape->setParent(this, this->worldEntityParent_->getObjectID());
+        }
+        else
+            shape->setParent(this, this->getObjectID());
     }
 
@@ -176,12 +192,6 @@
         if (this->parent_)
             this->parent_->updateChildShape(this);
-        else
-        {
-            // We can do this, because the CompoundCollisionShape of a WorldEntity always belongs to it,
-            // as long as its lifetime.
-            WorldEntity* parent = dynamic_cast<WorldEntity*>(this->getCreator());
-            if (parent)
-                parent->notifyCollisionShapeChanged();
-        }
+        else if (this->worldEntityParent_)
+            this->worldEntityParent_->notifyCollisionShapeChanged();
     }
 
Index: code/branches/presentation/src/orxonox/objects/collisionshapes/CompoundCollisionShape.h
===================================================================
--- code/branches/presentation/src/orxonox/objects/collisionshapes/CompoundCollisionShape.h	(revision 2465)
+++ code/branches/presentation/src/orxonox/objects/collisionshapes/CompoundCollisionShape.h	(revision 2469)
@@ -52,6 +52,5 @@
             void updateChildShape(CollisionShape* shape);
 
-            inline void suppressSynchronisation()
-                { this->setObjectMode(0x0); }
+            void setWorldEntityParent(WorldEntity* parent);
 
         protected:
@@ -63,4 +62,5 @@
             btCompoundShape* compoundShape_;
             std::map<CollisionShape*, btCollisionShape*> childShapes_;
+            WorldEntity* worldEntityParent_;
     };
 }
