Index: /code/branches/lastmanstanding/data/overlays/lastmanstandinghud.oxo
===================================================================
--- /code/branches/lastmanstanding/data/overlays/lastmanstandinghud.oxo	(revision 7635)
+++ /code/branches/lastmanstanding/data/overlays/lastmanstandinghud.oxo	(revision 7636)
@@ -20,5 +20,5 @@
      align    = "center"
     />
-    <!--LastManStandingInfos
+    <LastManStandingInfos
      position  = "0.63, 0.05"
      pickpoint = "0.0, 0.0"
@@ -30,5 +30,5 @@
      showlives     = true
      showplayers     = false
-    /-->
+    />
 
     <OverlayText
Index: /code/branches/lastmanstanding/src/modules/overlays/OverlaysPrereqs.h
===================================================================
--- /code/branches/lastmanstanding/src/modules/overlays/OverlaysPrereqs.h	(revision 7635)
+++ /code/branches/lastmanstanding/src/modules/overlays/OverlaysPrereqs.h	(revision 7636)
@@ -88,4 +88,5 @@
     class HUDTimer;
     class KillMessage;
+    class LastManStandingInfos;
     class TeamBaseMatchScore;
     class UnderAttackHealthBar;
Index: /code/branches/lastmanstanding/src/modules/overlays/hud/LastManStandingInfos.cc
===================================================================
--- /code/branches/lastmanstanding/src/modules/overlays/hud/LastManStandingInfos.cc	(revision 7635)
+++ /code/branches/lastmanstanding/src/modules/overlays/hud/LastManStandingInfos.cc	(revision 7636)
@@ -43,5 +43,6 @@
         RegisterObject(LastManStandingInfos);
 
-        this->owner_ = 0;
+        this->lms_ = 0;
+        this->player_ = 0;
         this->bShowLives_ = false;
         this->bShowPlayers_ = false;
@@ -64,23 +65,33 @@
         SUPER(LastManStandingInfos, tick, dt);
 
-        if (this->owner_)
+        if (this->player_ && this->lms_)
         {
-
-            Pawn* pawn = dynamic_cast<Pawn*>(this->getOwner()->getControllableEntity());
-            /*LastManStanding* */ owner_ = dynamic_cast<LastManStanding*>(this->getOwner()->getGametype());
-            int iLives = this->owner_->pawnGetLives(pawn);
-            const std::string& lives = multi_cast<std::string>(iLives);
-
-            const std::string& players = multi_cast<std::string>(this->owner_->playersAlive);
-
             if (this->bShowLives_)
             {
+                const std::string& lives = multi_cast<std::string>(this->lms_->playerGetLives(this->player_));
                 this->setCaption(lives);
             }
             else if(this->bShowPlayers_)
             {
+                const std::string& players = multi_cast<std::string>(this->lms_->getNumPlayersAlive());
                 this->setCaption(players);
             }
         }
     }
+
+    void LastManStandingInfos::changedOwner()
+    {
+        SUPER(LastManStandingInfos, changedOwner);
+
+        if (this->getOwner() && this->getOwner()->getGametype())
+        {
+            this->player_ = orxonox_cast<PlayerInfo*>(this->getOwner());
+            this->lms_ = orxonox_cast<LastManStanding*>(this->getOwner()->getGametype().get());
+        }
+        else
+        {
+            this->player_ = 0;
+            this->lms_ = 0;
+        }
+    }
 }
Index: /code/branches/lastmanstanding/src/modules/overlays/hud/LastManStandingInfos.h
===================================================================
--- /code/branches/lastmanstanding/src/modules/overlays/hud/LastManStandingInfos.h	(revision 7635)
+++ /code/branches/lastmanstanding/src/modules/overlays/hud/LastManStandingInfos.h	(revision 7636)
@@ -45,4 +45,5 @@
             virtual void tick(float dt);
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+            virtual void changedOwner();
 
             inline void setShowLives(bool value)
@@ -57,5 +58,6 @@
 
         private:
-            LastManStanding* owner_;
+            LastManStanding* lms_;
+            PlayerInfo* player_;
             bool bShowLives_;
             bool bShowPlayers_;
Index: /code/branches/lastmanstanding/src/orxonox/OrxonoxPrereqs.h
===================================================================
--- /code/branches/lastmanstanding/src/orxonox/OrxonoxPrereqs.h	(revision 7635)
+++ /code/branches/lastmanstanding/src/orxonox/OrxonoxPrereqs.h	(revision 7636)
@@ -93,4 +93,5 @@
     class Dynamicmatch;
     class Gametype;
+    class LastManStanding;
     class TeamBaseMatch;
     class TeamDeathmatch;
Index: /code/branches/lastmanstanding/src/orxonox/gametypes/LastManStanding.cc
===================================================================
--- /code/branches/lastmanstanding/src/orxonox/gametypes/LastManStanding.cc	(revision 7635)
+++ /code/branches/lastmanstanding/src/orxonox/gametypes/LastManStanding.cc	(revision 7636)
@@ -147,15 +147,5 @@
     }
 
-    int LastManStanding::pawnGetLives(Pawn* pawn)
-    {
-        if(!pawn)
-            return -1;
-        PlayerInfo* player= dynamic_cast<PlayerInfo*>(pawn);
-        if(!player)
-            return -2;
-        return playerLives_[player];
-    }
-
-    const int LastManStanding::playerGetLives(PlayerInfo* player)
+    int LastManStanding::playerGetLives(PlayerInfo* player)
     {
         if (player)
@@ -163,4 +153,9 @@
         else
             return 0;
+    }
+    
+    int LastManStanding::getNumPlayersAlive() const
+    {
+        return this->playersAlive;
     }
 
Index: /code/branches/lastmanstanding/src/orxonox/gametypes/LastManStanding.h
===================================================================
--- /code/branches/lastmanstanding/src/orxonox/gametypes/LastManStanding.h	(revision 7635)
+++ /code/branches/lastmanstanding/src/orxonox/gametypes/LastManStanding.h	(revision 7636)
@@ -73,6 +73,6 @@
 
             virtual void end(); //!< Sends an end message.
-            virtual int pawnGetLives(Pawn* pawn); //!< Returns amount of Lives of a certain player.
-            const int playerGetLives(PlayerInfo* player); //!< getFunction for the map "playerLives_".
+            int playerGetLives(PlayerInfo* player); //!< getFunction for the map "playerLives_".
+            int getNumPlayersAlive() const; //!< Returns the number of players that are still alive.
             virtual void playerEntered(PlayerInfo* player); //!< Initializes values. Manages the gametype's HUD. #Players alive via StaticMessage.
             virtual bool playerLeft(PlayerInfo* player); //!< Manages the gametype's HUD. #Players alive via StaticMessage.
