Index: /code/branches/gamecontent/src/orxonox/gametypes/Gametype.cc
===================================================================
--- /code/branches/gamecontent/src/orxonox/gametypes/Gametype.cc	(revision 8929)
+++ /code/branches/gamecontent/src/orxonox/gametypes/Gametype.cc	(revision 8930)
@@ -85,4 +85,5 @@
         this->dedicatedKillBots_ = createConsoleCommand( "dedicatedKillBots", createExecutor( createFunctor(&Gametype::killBots, this) ) );
         /* HACK HACK HACK */
+        //this->numberOfPlayers_ = 0;
     }
 
Index: /code/branches/gamecontent/src/orxonox/gametypes/Gametype.h
===================================================================
--- /code/branches/gamecontent/src/orxonox/gametypes/Gametype.h	(revision 8929)
+++ /code/branches/gamecontent/src/orxonox/gametypes/Gametype.h	(revision 8930)
@@ -155,4 +155,6 @@
             virtual void resetTimer();
             virtual void resetTimer(float t);
+            inline unsigned int getNumberOfPlayers()
+              { return this->gtinfo_->getNumberOfPlayers(); }
 
         protected:
@@ -192,4 +194,5 @@
             ConsoleCommand* dedicatedKillBots_;
             /* HACK HACK HACK */
+
     };
 }
Index: /code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.cc
===================================================================
--- /code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.cc	(revision 8929)
+++ /code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.cc	(revision 8930)
@@ -31,4 +31,5 @@
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
+#include "infos/PlayerInfo.h"
 #include "interfaces/TeamColourable.h"
 #include "worldentities/TeamSpawnPoint.h"
@@ -45,5 +46,6 @@
         this->teams_ = 2;
         this->allowFriendlyFire_ = false;
-
+        //this->playersPerTeam_ = 0;
+        this->maxPlayers_ = 0;
         this->setConfigValues();
     }
@@ -104,4 +106,18 @@
     }
 
+    void TeamGametype::spawnDeadPlayersIfRequested()
+    {
+        for (std::map<PlayerInfo*, Player>::iterator it = this->players_.begin(); it != this->players_.end();
+++it)
+        if (it->second.state_ == PlayerState::Dead)
+        {
+         if ((it->first->isReadyToSpawn() || this->bForceSpawn_))
+            {
+               this->spawnPlayer(it->first);
+            }
+        }
+    }
+
+
     bool TeamGametype::allowPawnHit(Pawn* victim, Pawn* originator)
     {// hit allowed: if victim & originator are foes or if originator doesnot exist or if friendlyfire is allowed 
Index: /code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.h
===================================================================
--- /code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.h	(revision 8929)
+++ /code/branches/gamecontent/src/orxonox/gametypes/TeamGametype.h	(revision 8930)
@@ -49,4 +49,5 @@
             virtual void findAndSetTeam(PlayerInfo* player);
             virtual bool playerLeft(PlayerInfo* player);
+            virtual void spawnDeadPlayersIfRequested(); //!< Prevents players to respawn.
 
             virtual bool allowPawnHit(Pawn* victim, Pawn* originator = 0);
@@ -55,4 +56,5 @@
 
             virtual void playerStartsControllingPawn(PlayerInfo* player, Pawn* pawn);
+
 
             int getTeam(PlayerInfo* player);
@@ -68,5 +70,7 @@
             std::map<PlayerInfo*, int> teamnumbers_;
             std::vector<ColourValue> teamcolours_;
-            unsigned int teams_;
+            unsigned int teams_; //<! Number  of teams. Value 0 : no teams!
+            //unsigned int playersPerTeam_; //<! Defines Maximum for players per team. Value 0: no maximum!
+            unsigned int maxPlayers_;  //<! Defines Maximum for number of players. Value 0 : no maximum!
     };
 }
Index: /code/branches/gamecontent/src/orxonox/infos/GametypeInfo.h
===================================================================
--- /code/branches/gamecontent/src/orxonox/infos/GametypeInfo.h	(revision 8929)
+++ /code/branches/gamecontent/src/orxonox/infos/GametypeInfo.h	(revision 8930)
@@ -119,4 +119,7 @@
             inline const std::string& getHUDTemplate() const
                 { return this->hudtemplate_; }
+            
+            inline unsigned int getNumberOfPlayers() const
+                {  return this->spawnedPlayers_.size(); }
 
             void sendAnnounceMessage(const std::string& message);
