Index: code/branches/modularships/data/levels/emptyLevel.oxw
===================================================================
--- code/branches/modularships/data/levels/emptyLevel.oxw	(revision 9997)
+++ code/branches/modularships/data/levels/emptyLevel.oxw	(revision 10001)
@@ -49,22 +49,33 @@
     </MovableEntity>
     
-    <Pawn health=1000 initialhealth=1000 maxhealth=1000 position="0,-100,0" direction="0,0,0" collisionType=dynamic mass=1000 name=box radarname = "Box 4" >
+    <Pawn health=1000 initialhealth=1000 maxhealth=1000 position="0,-100,-100" direction="0,0,0" collisionType=dynamic mass=1000 name=box radarname = "Pawn 0" >
         <attached>
-            <Model position="0,0,0" mesh="crate.mesh" scale3D="3,3,3" />
-            <Model position="0,-30,0" mesh="cube.mesh" scale3D="15,15,15" />
-            <StaticEntity position="0,-60,0" direction="0,0,0" collisionType=static mass=100 friction=0.01 >
+            <Model position="0,0,0" mesh="crate.mesh" scale3D="6,6,6" />
+            <Model position="0,-60,0" mesh="cube.mesh" scale3D="30,30,30" />
+            <StaticEntity position="0,-120,0" direction="0,0,0" collisionType=static mass=100 friction=0.01 >
                 <attached> 
-                    <Model position="0,0,0" mesh="cube.mesh" scale3D="15,15,15" />
-                    <Model position="0,0,30" mesh="cube.mesh" scale3D="15,15,15" /> 
+                    <Model position="0,0,0" mesh="crate.mesh" scale3D="6,6,6" />
+                    <Model position="0,0,60" mesh="cube.mesh" scale3D="30,30,30" /> 
                 </attached> 
                 <collisionShapes> 
-                    <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" /> 
-                    <BoxCollisionShape position="0,0,30" halfExtents="15,15,15" /> 
+                    <BoxCollisionShape position="0,0,0" halfExtents="30,30,30" /> 
+                    <BoxCollisionShape position="0,0,60" halfExtents="30,30,30" /> 
                 </collisionShapes> 
             </StaticEntity>
         </attached>
         <collisionShapes>
-            <BoxCollisionShape position="0,0,0" halfExtents="15,15,15" />
-            <BoxCollisionShape position="0,-30,0" halfExtents="15,15,15" />
+            <BoxCollisionShape position="0,0,0" halfExtents="30,30,30" />
+            <BoxCollisionShape position="0,-60,0" halfExtents="30,30,30" />
+        </collisionShapes>
+    </Pawn>
+
+    <Pawn health=1000 initialhealth=1000 maxhealth=1000 position="0,-100,100" direction="0,0,0" collisionType=dynamic mass=1000 name=box radarname = "Pawn 1" >
+        <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>
     </Pawn>
Index: code/branches/modularships/src/orxonox/collisionshapes/CollisionShape.h
===================================================================
--- code/branches/modularships/src/orxonox/collisionshapes/CollisionShape.h	(revision 9997)
+++ code/branches/modularships/src/orxonox/collisionshapes/CollisionShape.h	(revision 10001)
@@ -170,6 +170,9 @@
             void notifyDetached(); // Notifies the CollisionShape of being detached from a CompoundCollisionShape.
 
-            inline unsigned int getparentID()
+            inline unsigned int getParentID()
                 { return this->parentID_; }
+
+            inline CompoundCollisionShape* getParent()
+                { return this->parent_; }
 
         protected:
Index: code/branches/modularships/src/orxonox/collisionshapes/CompoundCollisionShape.h
===================================================================
--- code/branches/modularships/src/orxonox/collisionshapes/CompoundCollisionShape.h	(revision 9997)
+++ code/branches/modularships/src/orxonox/collisionshapes/CompoundCollisionShape.h	(revision 10001)
@@ -73,4 +73,9 @@
             int getNumChildShapes();
 
+            inline std::map<CollisionShape*, btCollisionShape*> getShapesMap()
+            {
+                return attachedShapes_;
+            }
+
         private:
             void updatePublicShape();
Index: code/branches/modularships/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/modularships/src/orxonox/worldentities/pawns/Pawn.cc	(revision 9997)
+++ code/branches/modularships/src/orxonox/worldentities/pawns/Pawn.cc	(revision 10001)
@@ -51,4 +51,5 @@
 
 #include "collisionshapes/WorldEntityCollisionShape.h"
+#include <BulletCollision/CollisionShapes/btCollisionShape.h>
 
 namespace orxonox
@@ -278,4 +279,6 @@
     void Pawn::customDamage(float damage, float healthdamage, float shielddamage, Pawn* originator, const btCollisionShape* cs)
     {
+        orxout() << "damage(): Collision detected on " << this->getRadarName() << ", btCS*: " << cs << endl;
+
         int collisionShapeIndex = this->isMyCollisionShape(cs);
         orxout() << collisionShapeIndex << endl;
@@ -284,6 +287,4 @@
         if (originator)
             damage *= originator->getDamageMultiplier();
-
-        orxout() << "damage(): Custom collision detected on " << this->getRadarName() << ", CS: " << cs << endl;
 
         if (this->getGametype() && this->getGametype()->allowPawnDamage(this, originator))
@@ -624,12 +625,16 @@
 
         // e.g. "Box 4: Searching for CS 0x1ad49200"
-        orxout() << this->getRadarName() << ": Searching for CS " << cs << endl;
+        orxout() << this->getRadarName() << ": Searching for btCS* " << cs << endl;
         // e.g. "Box 4 is WorldEntityCollisionShape 0x126dd060"
-        orxout() << "  " << this->getRadarName() << " is WorldEntityCollisionShape " << ownWECS << endl;
+        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 objectID 943"
         orxout() << "  " << this->getRadarName() << " is objectID " << this->getObjectID() << endl;
 
         // print child shapes of this WECS
-        printChildShapes(ownWECS, 2, 0);
+        // printChildShapes(ownWECS, 2, 0);
+        printChildShapeMap(ownWECS->getShapesMap());
+
 
         // end
@@ -640,18 +645,52 @@
     void Pawn::printChildShapes(CompoundCollisionShape* cs, int indent, int subshape)
     {
+        for (int i=0; i < cs->getNumChildShapes(); i++)
+        {
+            orxout() << "" << endl;
+        }
+        /*
         // e.g. "  Childshape 1 (WECS 0x126dc8c0) has 2 childshapes:"
-        printSpaces(indent);  orxout() << "Childshape " << subshape << " (WECS " << cs << ") has " << cs->getNumChildShapes() << " childshapes:" << endl;
+        printSpaces(indent);  orxout() << "Childshape " << subshape << " (CS* " << cs << ") has " << cs->getNumChildShapes() << " childshapes:" << endl;
+
+        // e.g. "Box 4 is WorldEntityCollisionShape 0x126dd060"
+        printSpaces(indent);  orxout() << "Childshape " << subshape << " is btCollisionShape* " << cs->getCollisionShape() << endl;
 
         for (int i=0; i < cs->getNumChildShapes(); i++)
         {
+            printSpaces(indent+2);  orxout() << "- " << i << " - - -" << endl;
+            printSpaces(indent+2);  orxout() << "This Shape is a ";
+            if (orxonox_cast<WorldEntityCollisionShape*>(cs->getAttachedShape(i)))
+                orxout() << "WECS ";
+            if (orxonox_cast<CompoundCollisionShape*>(cs->getAttachedShape(i)))
+                orxout() << "CCS ";
+            if (orxonox_cast<CollisionShape*>(cs->getAttachedShape(i)))
+                orxout() << "CS ";
+            orxout() << endl;
+
             // For each childshape, print:
+
+            // parentID of the CollisionShape
+            printSpaces(indent+2);  orxout() << "ParentID: " << cs->getAttachedShape(i)->getObjectID() << endl;
+
+            // parentID of the CollisionShape
+            printSpaces(indent+2);  orxout() << "ParentID: " << cs->getAttachedShape(i)->getParentID() << endl;
+
+            // parent of the CollisionShape
+            printSpaces(indent+2);  orxout() << "ParentCCS*: " << cs->getAttachedShape(i)->getParent() << endl;
+
             // pointer to the btCollisionShape
-            printSpaces(indent+2);  orxout() << "Bt-Childshape " << i << ": " << cs->getAttachedShape(i)->getCollisionShape() << endl;
+            printSpaces(indent+2);  orxout() << "btCollisionShape*: " << cs->getAttachedShape(i)->getCollisionShape() << endl;
 
             // pointer to the CollisionShape
-            printSpaces(indent+2);  orxout() << "Orx-Childshape " << i << ": " << cs->getAttachedShape(i) << endl;
-
-            // parentID of the CollisionShape
-            printSpaces(indent+2);  orxout() << "ParentID of CS " << i << ": " << cs->getAttachedShape(i)->getparentID() << endl;
+            printSpaces(indent+2);  orxout() << "CollisionShape*: " << cs->getAttachedShape(i) << endl;
+
+            if (cs->getAttachedShape(i)->getCollisionShape() != NULL)
+            {
+                // pointer to the user of the btCollisionShape
+                printSpaces(indent+2);  orxout() << "bt: getUserPointer: " << cs->getAttachedShape(i)->getCollisionShape()->getUserPointer() << endl;
+
+                //
+                printSpaces(indent+2);  orxout() << "bt: isCompound: " << cs->getAttachedShape(i)->getCollisionShape()->isCompound() << endl;
+            }
 
             // if the childshape is a CompoundCollisionShape, print its children.
@@ -660,5 +699,11 @@
                 printChildShapes((CompoundCollisionShape*)(cs->getAttachedShape(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 9997)
+++ code/branches/modularships/src/orxonox/worldentities/pawns/Pawn.h	(revision 10001)
@@ -235,4 +235,5 @@
             void printChildShapes(CompoundCollisionShape* cs, int indent, int subshape);
             void printSpaces(int num);
+            void printChildShapeMap(std::map<CollisionShape*, btCollisionShape*> map);
 
         private:
