Index: code/branches/pCuts/src/modules/tetris/Tetris.cc
===================================================================
--- code/branches/pCuts/src/modules/tetris/Tetris.cc	(revision 9084)
+++ code/branches/pCuts/src/modules/tetris/Tetris.cc	(revision 9085)
@@ -99,4 +99,6 @@
             {
                 this->activeBrick_->setVelocity(Vector3::ZERO);
+                this->activeBrick_->releaseStones(this->center_);
+                //delete this->activeBrick_; //releasing the memory
                 this->createBrick();
                 this->startBrick();
@@ -120,4 +122,8 @@
 
             const Vector3& currentStonePosition = (*it)->getPosition(); //!< Saves the position of the currentStone
+            orxout()<< "position.x: " << position.x << endl;
+            orxout()<< "currentStonePosition.x: " << currentStonePosition.x << endl;
+            if(position.x == currentStonePosition.x)
+            	orxout()<< "NON Valid Move Candidate" <<endl;
 
             if((position.x == currentStonePosition.x) && abs(position.y-currentStonePosition.y) < this->center_->getStoneSize())
@@ -145,7 +151,4 @@
                 stonePosition = rotateVector(stone->getPosition(), brick->getRotationCount());
 
-            /*orxout()<< "stoneRelativePoistion: " << stonePosition << endl;
-            orxout()<< "stoneTotalPoistion   : " << position + stonePosition << endl;*/
-
             if(! this->isValidMove(stone, position + stonePosition )) // wrong position??
             {
@@ -168,10 +171,17 @@
             if(this->activeBrick_->contains(*it))
                 continue;
-//TODO: is this rotation correct ??
-            Vector3 currentStonePosition = rotateVector((*it)->getPosition(), this->activeBrick_->getRotationCount());
+            //Vector3 currentStonePosition = rotateVector((*it)->getPosition(), this->activeBrick_->getRotationCount());
+            const Vector3& currentStonePosition = (*it)->getPosition(); //!< Saves the position of the currentStone
             //!< Saves the position of the currentStone
+            if(position.x == currentStonePosition.x)
+            {
+                orxout()<< "candidate found" << endl;
+                orxout()<< "position.y: "<< position.y << endl;
+                orxout()<< "urrentStonePosition.y: " << currentStonePosition.y << endl;
+            }
 
             if((position.x == currentStonePosition.x) && (position.y < currentStonePosition.y + this->center_->getStoneSize()))
             {//TODO: Why are such events not detected ??
+             // Because currentStonePosition.x isn't calculated globally, but locally
                 orxout()<< "YEAY !!"<<endl;
                 this->activeBrick_->setPosition(Vector3(this->activeBrick_->getPosition().x, currentStonePosition.y+this->center_->getStoneSize(), this->activeBrick_->getPosition().z));
@@ -207,9 +217,8 @@
     /**
     @brief
-        Nasty function that allocates memory!! it rolls a vector 90° * amount
+        A Vector3 is rolled 90 * degrees * amount (anticlockwise rotation)
     */
     Vector3 Tetris::rotateVector(Vector3 position, unsigned int amount)
     {
-
     	int temp = 0;
         for(unsigned int i = 0; i < amount; i++)
@@ -230,5 +239,5 @@
         if (this->center_ != NULL) // There needs to be a TetrisCenterpoint, i.e. the area the game takes place.
         {
-            // Create the first stone.
+            // Create the first brick.
             this->createBrick();
         }
Index: code/branches/pCuts/src/modules/tetris/TetrisBrick.cc
===================================================================
--- code/branches/pCuts/src/modules/tetris/TetrisBrick.cc	(revision 9084)
+++ code/branches/pCuts/src/modules/tetris/TetrisBrick.cc	(revision 9085)
@@ -53,5 +53,5 @@
         RegisterObject(TetrisBrick);
 
-        this->shapeIndex_ = 1; //<! TODO: random number between 0 and 7
+        this->shapeIndex_ = 4; //<! TODO: random number between 0 and 7
         this->stonesPerBrick_ = 4; //<! most tetris bricks is formed by 4 stones
         this->delay_ = false;
@@ -241,4 +241,19 @@
         this->setVelocity(0.0f, 0.0f, 0.0f);
     }
+    /**
+    @brief
+        Attaches stones to the Centerpoint.
+    */
+    void TetrisBrick::releaseStones(TetrisCenterpoint* center)
+    {
+        for(unsigned int i = 0; i < brickStones_.size(); i++)
+        {
+            //this->brickStones_[i]->detachFromParent();
+
+            //this->brickStones_[i]->detach(this);
+            //this->brickStones_[i]->attach(center);
+        }
+
+    }
 
 }
Index: code/branches/pCuts/src/modules/tetris/TetrisBrick.h
===================================================================
--- code/branches/pCuts/src/modules/tetris/TetrisBrick.h	(revision 9084)
+++ code/branches/pCuts/src/modules/tetris/TetrisBrick.h	(revision 9085)
@@ -72,4 +72,6 @@
                 { return this->rotationCount_;}
 
+            void releaseStones(TetrisCenterpoint* center);
+
         protected:
             void createBrick(void); //!< Create a cluster of TetrisStones
Index: code/branches/pCuts/src/modules/tetris/TetrisStone.cc
===================================================================
--- code/branches/pCuts/src/modules/tetris/TetrisStone.cc	(revision 9084)
+++ code/branches/pCuts/src/modules/tetris/TetrisStone.cc	(revision 9085)
@@ -72,5 +72,4 @@
         else if(!this->lockRotation_) //rotate when key up is pressed
         {
-            orxout() << "The object should be rolled soon." << endl;
             this->lockRotation_ = true; // multiple calls of this function have to be filtered out.
             this->rotationTimer_.setTimer(0.1f, false, createExecutor(createFunctor(&TetrisStone::unlockRotation, this)));
