Index: code/branches/objecthierarchy2/src/orxonox/objects/Radar.cc
===================================================================
--- code/branches/objecthierarchy2/src/orxonox/objects/Radar.cc	(revision 2437)
+++ code/branches/objecthierarchy2/src/orxonox/objects/Radar.cc	(revision 2438)
@@ -134,5 +134,5 @@
             Vector3 targetPosition = localPosition;
             if (*(this->itFocus_))
-                targetPosition = this->itFocus_->getWorldPosition();
+                targetPosition = this->itFocus_->getRVWorldPosition();
 
             // find the closed object further away than targetPosition
@@ -147,5 +147,5 @@
                     continue;
 
-                float targetDistance = localPosition.squaredDistance((*it)->getWorldPosition());
+                float targetDistance = localPosition.squaredDistance((*it)->getRVWorldPosition());
                 if (targetDistance > currentDistance && targetDistance < nextDistance)
                 {
@@ -187,5 +187,5 @@
         for (ObjectList<RadarViewable>::iterator it = ObjectList<RadarViewable>::begin(); it; ++it, ++i)
         {
-            COUT(3) << i++ << ": " << (*it)->getWorldPosition() << std::endl;
+            COUT(3) << i++ << ": " << (*it)->getRVWorldPosition() << std::endl;
         }
     }
Index: code/branches/objecthierarchy2/src/orxonox/objects/RadarViewable.cc
===================================================================
--- code/branches/objecthierarchy2/src/orxonox/objects/RadarViewable.cc	(revision 2437)
+++ code/branches/objecthierarchy2/src/orxonox/objects/RadarViewable.cc	(revision 2438)
@@ -61,5 +61,5 @@
     }
 
-    const Vector3& RadarViewable::getWorldPosition() const
+    const Vector3& RadarViewable::getRVWorldPosition() const
     {
         const WorldEntity* object = this->getWorldEntity();
@@ -68,5 +68,5 @@
     }
 
-    Vector3 RadarViewable::getOrientedVelocity() const
+    Vector3 RadarViewable::getRVOrientedVelocity() const
     {
         const WorldEntity* object = this->getWorldEntity();
Index: code/branches/objecthierarchy2/src/orxonox/objects/RadarViewable.h
===================================================================
--- code/branches/objecthierarchy2/src/orxonox/objects/RadarViewable.h	(revision 2437)
+++ code/branches/objecthierarchy2/src/orxonox/objects/RadarViewable.h	(revision 2438)
@@ -72,6 +72,6 @@
         virtual const WorldEntity* getWorldEntity() const = 0;
 
-        const Vector3& getWorldPosition() const;
-        Vector3 getOrientedVelocity() const;
+        const Vector3& getRVWorldPosition() const;
+        Vector3 getRVOrientedVelocity() const;
 
         inline void setRadarObjectShape(Shape shape)
Index: code/branches/objecthierarchy2/src/orxonox/objects/gametypes/Gametype.cc
===================================================================
--- code/branches/objecthierarchy2/src/orxonox/objects/gametypes/Gametype.cc	(revision 2437)
+++ code/branches/objecthierarchy2/src/orxonox/objects/gametypes/Gametype.cc	(revision 2438)
@@ -38,4 +38,5 @@
 #include "objects/worldentities/pawns/Spectator.h"
 #include "objects/worldentities/SpawnPoint.h"
+#include "objects/worldentities/Camera.h"
 
 #include "network/Host.h"
@@ -62,4 +63,6 @@
     {
         SetConfigValue(initialStartCountdown_, 3.0f);
+        SetConfigValue(bAutoStart_, false);
+        SetConfigValue(bForceSpawn_, false);
     }
 
@@ -146,4 +149,22 @@
     void Gametype::pawnKilled(Pawn* victim, Pawn* killer)
     {
+        if (victim)
+        {
+            std::map<PlayerInfo*, PlayerState::Enum>::iterator it = this->players_.find(victim->getPlayer());
+            it->second = PlayerState::Dead;
+
+            ControllableEntity* entity = this->defaultControllableEntity_.fabricate(victim->getCreator());
+            if (victim->getCamera())
+            {
+                entity->setPosition(victim->getCamera()->getWorldPosition());
+                entity->setOrientation(victim->getCamera()->getWorldOrientation());
+            }
+            else
+            {
+                entity->setPosition(victim->getWorldPosition());
+                entity->setOrientation(victim->getWorldOrientation());
+            }
+            it->first->startControl(entity);
+        }
     }
 
Index: code/branches/objecthierarchy2/src/orxonox/objects/infos/PlayerInfo.cc
===================================================================
--- code/branches/objecthierarchy2/src/orxonox/objects/infos/PlayerInfo.cc	(revision 2437)
+++ code/branches/objecthierarchy2/src/orxonox/objects/infos/PlayerInfo.cc	(revision 2438)
@@ -115,5 +115,5 @@
     }
 
-    void PlayerInfo::startControl(ControllableEntity* entity)
+    void PlayerInfo::startControl(ControllableEntity* entity, bool callback)
     {
         if (entity == this->controllableEntity_)
@@ -121,5 +121,5 @@
 
         if (this->controllableEntity_)
-            this->stopControl(this->controllableEntity_);
+            this->stopControl(this->controllableEntity_, callback);
 
         this->controllableEntity_ = entity;
Index: code/branches/objecthierarchy2/src/orxonox/objects/infos/PlayerInfo.h
===================================================================
--- code/branches/objecthierarchy2/src/orxonox/objects/infos/PlayerInfo.h	(revision 2437)
+++ code/branches/objecthierarchy2/src/orxonox/objects/infos/PlayerInfo.h	(revision 2438)
@@ -65,5 +65,5 @@
                 { return this->bReadyToSpawn_; }
 
-            void startControl(ControllableEntity* entity);
+            void startControl(ControllableEntity* entity, bool callback = true);
             void stopControl(ControllableEntity* entity, bool callback = true);
 
Index: code/branches/objecthierarchy2/src/orxonox/objects/worldentities/ControllableEntity.cc
===================================================================
--- code/branches/objecthierarchy2/src/orxonox/objects/worldentities/ControllableEntity.cc	(revision 2437)
+++ code/branches/objecthierarchy2/src/orxonox/objects/worldentities/ControllableEntity.cc	(revision 2438)
@@ -81,5 +81,5 @@
         if (this->isInitialized())
         {
-            if (this->bHasLocalController_)
+            if (this->bHasLocalController_ && this->bHasHumanController_)
                 this->stopLocalHumanControl();
 
@@ -250,10 +250,16 @@
     void ControllableEntity::stopLocalHumanControl()
     {
-        this->camera_->detachFromParent();
-        delete this->camera_;
-        this->camera_ = 0;
-
-        delete this->hud_;
-        this->hud_ = 0;
+        if (this->camera_)
+        {
+            this->camera_->detachFromParent();
+            delete this->camera_;
+            this->camera_ = 0;
+        }
+
+        if (this->hud_)
+        {
+            delete this->hud_;
+            this->hud_ = 0;
+        }
     }
 
Index: code/branches/objecthierarchy2/src/orxonox/objects/worldentities/pawns/Pawn.cc
===================================================================
--- code/branches/objecthierarchy2/src/orxonox/objects/worldentities/pawns/Pawn.cc	(revision 2437)
+++ code/branches/objecthierarchy2/src/orxonox/objects/worldentities/pawns/Pawn.cc	(revision 2438)
@@ -160,8 +160,8 @@
         this->bAlive_ = false;
 
+        this->setDestroyWhenPlayerLeft(false);
+
         if (this->getGametype())
             this->getGametype()->pawnKilled(this, this->lastHitOriginator_);
-
-        this->setDestroyWhenPlayerLeft(false);
 
         if (this->getPlayer())
Index: code/branches/objecthierarchy2/src/orxonox/overlays/hud/HUDNavigation.cc
===================================================================
--- code/branches/objecthierarchy2/src/orxonox/overlays/hud/HUDNavigation.cc	(revision 2437)
+++ code/branches/objecthierarchy2/src/orxonox/overlays/hud/HUDNavigation.cc	(revision 2438)
@@ -151,5 +151,5 @@
 */
         // transform to screen coordinates
-        Vector3 pos = /*transformationMatrix * */Radar::getInstance().getFocus()->getWorldPosition();
+        Vector3 pos = /*transformationMatrix * */Radar::getInstance().getFocus()->getRVWorldPosition();
 
         bool outOfView;
@@ -225,5 +225,5 @@
 /*
             Vector3 aimpos = transformationMatrix * getPredictedPosition(SpaceShip::getLocalShip()->getPosition(),
-                    Projectile::getSpeed(), Radar::getInstance().getFocus()->getWorldPosition(), Radar::getInstance().getFocus()->getOrientedVelocity());
+                    Projectile::getSpeed(), Radar::getInstance().getFocus()->getRVWorldPosition(), Radar::getInstance().getFocus()->getRVOrientedVelocity());
 */
             if (wasOutOfView_)
@@ -252,5 +252,5 @@
 /*
         if (Radar::getInstance().getFocus())
-            return (Radar::getInstance().getFocus()->getWorldPosition() - SpaceShip::getLocalShip()->getPosition()).length();
+            return (Radar::getInstance().getFocus()->getRVWorldPosition() - SpaceShip::getLocalShip()->getPosition()).length();
         else
 */
