Index: orxonox/trunk/src/lib/collision_detection/cd_engine.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/cd_engine.cc	(revision 4703)
+++ orxonox/trunk/src/lib/collision_detection/cd_engine.cc	(revision 4704)
@@ -66,11 +66,10 @@
   WorldEntity* entity1 = iterator1->nextElement();
   WorldEntity* entity2 = iterator2->seekElement(entity1);
-  printf("checking for collisions\n");
+  PRINTF(3)("checking for collisions\n");
   while( entity1 != NULL)
   {
-    printf("entering l1\n");
     while( entity2 != NULL)
     {
-      printf("entering l2 - checking object %s against %s\n", entity1->getName(), entity2->getName());
+      PRINTF(3)("checking object %s against %s\n", entity1->getName(), entity2->getName());
       entity1->collideWith(entity2);
       entity2 = iterator2->nextElement();
Index: orxonox/trunk/src/lib/collision_detection/obb.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/obb.cc	(revision 4703)
+++ orxonox/trunk/src/lib/collision_detection/obb.cc	(revision 4704)
@@ -31,4 +31,5 @@
    this->axis = new Vector[3];
    this->halfLength = new float[3];
+   this->bCollided = false;
 }
 
Index: orxonox/trunk/src/lib/collision_detection/obb_tree_node.cc
===================================================================
--- orxonox/trunk/src/lib/collision_detection/obb_tree_node.cc	(revision 4703)
+++ orxonox/trunk/src/lib/collision_detection/obb_tree_node.cc	(revision 4704)
@@ -609,14 +609,27 @@
   PRINTF(0)("collideWith\n");
   /* if the obb overlap, make subtests: check which node is realy overlaping  */
+  PRINT(0)("Checking OBB %i vs %i: ", this->getIndex(), treeNode->getIndex());
   if( this->overlapTest(this->bvElement, ((OBBTreeNode*)treeNode)->bvElement, nodeA, nodeB))
   {
     /* check if left node overlaps */
-    if( unlikely( this->nodeLeft != NULL))
+    if( likely( this->nodeLeft != NULL))
+    {
+      PRINT(0)("Checking OBB %i vs %i: ", this->nodeLeft->getIndex(), treeNode->getIndex());
       if( this->overlapTest(this->nodeLeft->bvElement, ((OBBTreeNode*)treeNode)->bvElement, nodeA, nodeB))
+      {
         this->nodeLeft->collideWith(((OBBTreeNode*)treeNode)->nodeLeft, nodeA, nodeB);
+        this->nodeLeft->collideWith(((OBBTreeNode*)treeNode)->nodeRight, nodeA, nodeB);
+      }
+    }
     /* check if right node overlaps */
-    if( unlikely( this->nodeRight != NULL))
+    if( likely( this->nodeRight != NULL))
+    {
+      PRINT(0)("Checking OBB %i vs %i: ", this->nodeRight->getIndex(), treeNode->getIndex());
       if(this->overlapTest(this->nodeRight->bvElement, ((OBBTreeNode*)treeNode)->bvElement, nodeA, nodeB))
-        this->nodeLeft->collideWith(((OBBTreeNode*)treeNode)->nodeRight, nodeA, nodeB);
+      {
+       this->nodeRight->collideWith(((OBBTreeNode*)treeNode)->nodeLeft, nodeA, nodeB);
+       this->nodeRight->collideWith(((OBBTreeNode*)treeNode)->nodeRight, nodeA, nodeB);
+      }
+    }
   }
 }
@@ -626,4 +639,5 @@
 bool OBBTreeNode::overlapTest(OBB* boxA, OBB* boxB, PNode* nodeA, PNode* nodeB)
 {
+
 
 
@@ -641,4 +655,5 @@
       l = boxA->axis[j];
 
+      /* \todo unroll all loops */
       for(int i = 0; i < 3; ++i)
         rA += fabs(boxA->halfLength[i] * boxA->axis[i].dot(l));
@@ -651,5 +666,6 @@
       if( (rA + rB) < fabs(t.dot(l)))
       {
-        PRINTF(0)(" - Keine Kollision in der Bahnfohstrasse! Passagiere der Linien 6, 14 sind gebeten zu fliegen!\n");
+        PRINT(0)("keine Kollision\n");
+        PRINTF(3)(" - Keine Kollision in der Bahnfohstrasse! Passagiere der Linien 6, 14 sind gebeten zu fliegen!\n");
         return false;
       }
@@ -673,5 +689,6 @@
       if( (rA + rB) < fabs(t.dot(l)))
       {
-        PRINTF(0)(" - Keine Kollision in der Bahnfohstrasse! Passagiere der Linien 6, 14 sind gebeten zu fliegen!\n");
+        PRINT(0)("keine Kollision\n");
+        PRINTF(3)(" - Keine Kollision in der Bahnfohstrasse! Passagiere der Linien 6, 14 sind gebeten zu fliegen!\n");
         return false;
       }
@@ -699,5 +716,6 @@
           if( (rA + rB) < fabs(t.dot(l)))
           {
-            PRINTF(0)(" - Keine Kollision in der Bahnfohstrasse! Passagiere der Linien 6, 14 sind gebeten zu fliegen!\n");
+            PRINT(0)("keine Kollision\n");
+            PRINTF(3)(" - Keine Kollision in der Bahnfohstrasse! Passagiere der Linien 6, 14 sind gebeten zu fliegen!\n");
             return false;
           }
@@ -710,4 +728,5 @@
     boxA->bCollided = true; /* use this ONLY!!!! for drawing operations */
     boxB->bCollided = true;
+    PRINT(0)("Kollision!\n");
     return true;
 }
Index: orxonox/trunk/src/subprojects/collision_detection/collision_detection.cc
===================================================================
--- orxonox/trunk/src/subprojects/collision_detection/collision_detection.cc	(revision 4703)
+++ orxonox/trunk/src/subprojects/collision_detection/collision_detection.cc	(revision 4704)
@@ -38,4 +38,5 @@
 int drawMode;
 int depth;
+float iterata;
 tList<WorldEntity>* entityList;
 
@@ -43,5 +44,5 @@
 bool drawModel;
 
-TestEntity* a;
+Environment* a;
 Environment* b;
 
@@ -68,5 +69,6 @@
   entityList = new tList<WorldEntity>();
 
-  a = new TestEntity(); a->setName("Clown1");
+  //a = new TestEntity(); a->setName("Clown1");
+  a = new Environment(); a->setName("Clown");
   b = new Environment(); b->setName("Jaeger");
   b->setRelCoor(0.0, 0.0, -10.0);
@@ -92,5 +94,5 @@
   depth = 0;
   dt = lastFrame = currentFrame = 0;
-
+  iterata = 0.05f;
 
   moduleHelp();
@@ -198,4 +200,14 @@
           }
           break;
+        case SDLK_o:
+          if(iterata == 0.0f)
+          {
+            iterata = 0.05f;
+          }
+          else
+          {
+            iterata = 0.0f;
+          }
+          break;
 
       }
@@ -227,5 +239,5 @@
   }
 
-  b->shiftCoor(Vector(0.0, 0.0, 0.1));
+  b->shiftCoor(Vector(0.0, 0.0, iterata));
 
 
