Index: code/branches/modularships/data/levels/emptyLevel.oxw
===================================================================
--- code/branches/modularships/data/levels/emptyLevel.oxw	(revision 10002)
+++ code/branches/modularships/data/levels/emptyLevel.oxw	(revision 10003)
@@ -63,4 +63,14 @@
                 </collisionShapes> 
             </StaticEntity>
+            <StaticEntity position="0,-180,0" direction="0,0,0" collisionType=static mass=100 friction=0.01 >
+                <attached> 
+                    <Model position="0,0,0" mesh="crate.mesh" scale3D="6,6,6" />
+                    <Model position="0,-60,0" mesh="cube.mesh" scale3D="30,30,30" /> 
+                </attached> 
+                <collisionShapes> 
+                    <BoxCollisionShape position="0,0,0" halfExtents="30,30,30" /> 
+                    <BoxCollisionShape position="0,-60,0" halfExtents="30,30,30" /> 
+                </collisionShapes> 
+            </StaticEntity>
         </attached>
         <collisionShapes>
Index: code/branches/modularships/src/orxonox/collisionshapes/CompoundCollisionShape.cc
===================================================================
--- code/branches/modularships/src/orxonox/collisionshapes/CompoundCollisionShape.cc	(revision 10002)
+++ code/branches/modularships/src/orxonox/collisionshapes/CompoundCollisionShape.cc	(revision 10003)
@@ -39,4 +39,6 @@
 #include "core/XMLPort.h"
 #include "tools/BulletConversions.h"
+
+#include "collisionshapes/WorldEntityCollisionShape.h"
 
 namespace orxonox
@@ -118,4 +120,9 @@
             this->updatePublicShape();
         }
+
+        // If the shape to be attached is not a CompoundCollisionShape (thus an actual physical shape) & this is a WorldEntity's CollisionShape,
+        // set it's userPointer to the WorldEntity this CompoundCollisionShape belongs to.
+        if (!orxonox_cast<CompoundCollisionShape*>(shape) && orxonox_cast<WorldEntityCollisionShape*>(this))
+            shape->getCollisionShape()->setUserPointer(orxonox_cast<WorldEntityCollisionShape*>(this)->getWorldEntityOwner());
     }
 
Index: code/branches/modularships/src/orxonox/worldentities/WorldEntity.cc
===================================================================
--- code/branches/modularships/src/orxonox/worldentities/WorldEntity.cc	(revision 10002)
+++ code/branches/modularships/src/orxonox/worldentities/WorldEntity.cc	(revision 10003)
@@ -46,4 +46,5 @@
 #include "Scene.h"
 #include "collisionshapes/WorldEntityCollisionShape.h"
+#include <BulletCollision/CollisionShapes/btCollisionShape.h>
 
 namespace orxonox
Index: code/branches/modularships/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/modularships/src/orxonox/worldentities/pawns/Pawn.cc	(revision 10002)
+++ code/branches/modularships/src/orxonox/worldentities/pawns/Pawn.cc	(revision 10003)
@@ -630,13 +630,17 @@
         // e.g. "Box 4 is WorldEntityCollisionShape 0x126dd060"
         orxout() << "  " << this->getRadarName() << " is WorldEntityCollisionShape* " << ownWECS << endl;
-        // e.g. "Box 4 is btCollisionShape 0x126dd060"
-        orxout() << "  " << this->getRadarName() << " is btCollisionShape* " << ownWECS->getCollisionShape() << endl;
+        // e.g. "Box 4 is WorldEntity 0x126dd060"
+        orxout() << "  " << this->getRadarName() << " is WorldEntity* " << this << endl;
         // e.g. "Box 4 is objectID 943"
         orxout() << "  " << this->getRadarName() << " is objectID " << this->getObjectID() << endl;
+
+        // List all attached Objects
+        orxout() << "  " << this->getRadarName() << " has the following Objects attached:" << endl;
+        for (int i=0; i<10; i++)
+            orxout() << " " << i << ": " << this->getAttachedObject(i) << endl;
 
         // print child shapes of this WECS
         // printChildShapes(ownWECS, 2, 0);
         printBtChildShapes((btCompoundShape*)(ownWECS->getCollisionShape()), 2, 0);
-        // printChildShapeMap(ownWECS->getShapesMap());
 
 
@@ -715,22 +719,19 @@
             printSpaces(indent+2);  orxout() << "- " << i << " - - -" << endl;
 
-            // For each childshape, print:
-
-            // pointer to the btCollisionShape
-            printSpaces(indent+2);  orxout() << "btCollisionShape*: " << cs->getChildShape(i) << endl;
+            // For each childshape, print: (as long as it's not another CompoundCollisionShape)
+            if (!orxonox_cast<btCompoundShape*>(cs->getChildShape(i)))
+            {
+                // pointer to the btCollisionShape
+                printSpaces(indent+2);  orxout() << "btCollisionShape*: " << cs->getChildShape(i) << endl;
+
+                // pointer to the btCollisionShape
+                printSpaces(indent+2);  orxout() << "m_userPointer*: " << cs->getChildShape(i)->getUserPointer() << endl;
+            }
 
             // if the childshape is a CompoundCollisionShape, print its children.
             if (cs->getChildShape(i)->isCompound())
-            {
-                printSpaces(indent+2);  orxout() << "This shape is compound." << endl;
                 printBtChildShapes((btCompoundShape*)(cs->getChildShape(i)), indent+2, i);
-            }
-
-        }
-    }
-
-    void Pawn::printChildShapeMap(std::map<CollisionShape*, btCollisionShape*> map)
-    {
-        orxout() << endl;
+
+        }
     }
 
Index: code/branches/modularships/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- code/branches/modularships/src/orxonox/worldentities/pawns/Pawn.h	(revision 10002)
+++ code/branches/modularships/src/orxonox/worldentities/pawns/Pawn.h	(revision 10003)
@@ -236,5 +236,4 @@
             void printBtChildShapes(btCompoundShape* cs, int indent, int subshape);
             void printSpaces(int num);
-            void printChildShapeMap(std::map<CollisionShape*, btCollisionShape*> map);
 
         private:
