Index: code/branches/formationupdate/src/orxonox/controllers/FormationController.h
===================================================================
--- code/branches/formationupdate/src/orxonox/controllers/FormationController.h	(revision 9584)
+++ code/branches/formationupdate/src/orxonox/controllers/FormationController.h	(revision 9613)
@@ -100,4 +100,5 @@
       /* Just for testing purposes: report the master. */
       FormationController* getMaster( void ) { return myMaster_; }
+      FormationController* getThis( void ) { return this; }
 
   protected:
Index: code/branches/formationupdate/src/orxonox/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/formationupdate/src/orxonox/worldentities/pawns/Pawn.cc	(revision 9584)
+++ code/branches/formationupdate/src/orxonox/worldentities/pawns/Pawn.cc	(revision 9613)
@@ -308,24 +308,40 @@
     }
 
+    // Two functions to find the slaves of a Pawn
+    bool Pawn::hasSlaves()
+    {
+    	/* TEST TEST This is used to find out if the current pawn is also
+		 * the master of the formation and to find his slaves.
+		 *
+		 */
+		for (ObjectList<FormationController>::iterator it =
+			 ObjectList<FormationController>::begin();
+			 it != ObjectList<FormationController>::end(); ++it )
+		{
+			// checks if the dying Pawn has a slave
+			if (this->hasHumanController() && it->getMaster() == this->getPlayer()->getController())
+			{
+				orxout(user_warning) << "This is a Slave of the HumanController: " << it->getThis() << endl;
+				return true;
+			}
+		}
+		return false;
+		/* TEST TEST */
+    }
+
+    Controller* Pawn::getSlave(){
+    	for (ObjectList<FormationController>::iterator it =
+    				 ObjectList<FormationController>::begin();
+    				 it != ObjectList<FormationController>::end(); ++it )
+    	{
+    		if (this->hasHumanController() && it->getMaster() == this->getPlayer()->getController())
+    			return it->getThis();
+    	}
+    	return 0;
+    }
+
+
     void Pawn::death()
     {
-        /* TEST TEST This is used to find out if the current pawn is also 
-         * the master of the formation.
-         *
-         * NOTE: This does not yet check if the current pawn is actually 
-         *       the humanplayer or not!
-         */
-        for (ObjectList<FormationController>::iterator it = 
-          ObjectList<FormationController>::begin(); 
-          it != ObjectList<FormationController>::end(); ++it )
-        {
-          orxout(user_warning) << "Test! Master: " << it->getMaster() 
-            << " My controller: " << this->getPlayer()->getController() << endl;
-        }
-        /* TEST TEST */
-
-            
-
-
         this->setHealth(1);
         if (this->getGametype() && this->getGametype()->allowPawnDeath(this, this->lastHitOriginator_))
@@ -339,12 +355,19 @@
                 this->getGametype()->pawnKilled(this, this->lastHitOriginator_);
 
+
             if (this->getPlayer() && this->getPlayer()->getControllableEntity() == this)
+            {
+            	if(this->hasSlaves())
+            	{
+    				// start to control a slave
+    				this->getPlayer()->startControl(this->getSlave()->getControllableEntity());
+            	}
                 this->getPlayer()->stopControl();
-
-            if (GameMode::isMaster())
+            }
+            /*if (GameMode::isMaster())
             {
 //                this->deathEffect();
                 this->goWithStyle();
-            }
+            }*/
         }
     }
Index: code/branches/formationupdate/src/orxonox/worldentities/pawns/Pawn.h
===================================================================
--- code/branches/formationupdate/src/orxonox/worldentities/pawns/Pawn.h	(revision 9584)
+++ code/branches/formationupdate/src/orxonox/worldentities/pawns/Pawn.h	(revision 9613)
@@ -185,4 +185,6 @@
 
             virtual void death();
+            virtual bool hasSlaves();
+            virtual Controller* getSlave();
             virtual void goWithStyle();
             virtual void deatheffect();
