Index: /code/branches/gametypes/src/orxonox/objects/gametypes/Asteroids.cc
===================================================================
--- /code/branches/gametypes/src/orxonox/objects/gametypes/Asteroids.cc	(revision 2935)
+++ /code/branches/gametypes/src/orxonox/objects/gametypes/Asteroids.cc	(revision 2936)
@@ -54,5 +54,5 @@
     }
 
-    void Deathmatch::end()
+    void Asteroids::end()
     {
         Gametype::end();
Index: /code/branches/gametypes/src/orxonox/objects/gametypes/CMakeLists.txt
===================================================================
--- /code/branches/gametypes/src/orxonox/objects/gametypes/CMakeLists.txt	(revision 2935)
+++ /code/branches/gametypes/src/orxonox/objects/gametypes/CMakeLists.txt	(revision 2936)
@@ -6,3 +6,4 @@
   Pong.cc
   UnderAttack.cc
+  Asteroids.cc
 )
Index: /code/branches/gametypes/src/orxonox/objects/worldentities/triggers/CMakeLists.txt
===================================================================
--- /code/branches/gametypes/src/orxonox/objects/worldentities/triggers/CMakeLists.txt	(revision 2935)
+++ /code/branches/gametypes/src/orxonox/objects/worldentities/triggers/CMakeLists.txt	(revision 2936)
@@ -4,3 +4,4 @@
   EventTrigger.cc
   PlayerTrigger.cc
+  CheckPoint.cc
 )
Index: /code/branches/gametypes/src/orxonox/objects/worldentities/triggers/CheckPoint.cc
===================================================================
--- /code/branches/gametypes/src/orxonox/objects/worldentities/triggers/CheckPoint.cc	(revision 2935)
+++ /code/branches/gametypes/src/orxonox/objects/worldentities/triggers/CheckPoint.cc	(revision 2936)
@@ -29,4 +29,5 @@
 #include "OrxonoxStableHeaders.h"
 #include "CheckPoint.h"
+#include "objects/gametypes/Asteroids.h"
 
 #include <OgreNode.h>
@@ -45,6 +46,8 @@
     RegisterObject(CheckPoint);
 
-    isForPlayer_ = true;
-    bStayActive_ = true;
+    this->setStayActive(true);
+    this->setDistance(20);
+    bIsDestination_ = false;
+    this->setVisible(true);
   }
 
@@ -52,12 +55,34 @@
   {
   }
+  
+  void CheckPoint::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+  {
+    SUPER(CheckPoint, XMLPort, xmlelement, mode);
 
-  void Checkpoint::triggered(bool bIsTriggered)
+    XMLPortParam(CheckPoint, "isdestination", setDestination, getDestination, xmlelement, mode).defaultValues(false);
+  }
+  
+  void CheckPoint::setDestination(bool isDestination)
+  {
+    bIsDestination_ = isDestination;
+  }
+
+  bool CheckPoint::getDestination()
+  {
+    return bIsDestination_;
+  }
+
+
+  void CheckPoint::triggered(bool bIsTriggered)
   {
     DistanceTrigger::triggered(bIsTriggered);
 
-    if (bIsTriggered)
+    if (bIsTriggered && bIsDestination_)
     {
-      //...
+      Asteroids* gametype = dynamic_cast<Asteroids*>(this->getGametype());
+      if (gametype)
+      {
+        gametype->end();
+      }
     }
   }
Index: /code/branches/gametypes/src/orxonox/objects/worldentities/triggers/CheckPoint.h
===================================================================
--- /code/branches/gametypes/src/orxonox/objects/worldentities/triggers/CheckPoint.h	(revision 2935)
+++ /code/branches/gametypes/src/orxonox/objects/worldentities/triggers/CheckPoint.h	(revision 2936)
@@ -36,25 +36,30 @@
 #define _CheckPoint_H__
 
-#include "OrxonoxPrereqs.h"
+#include "DistanceTrigger.h"
 
-#include "Trigger.h"
+#include <set>
+
+#include "core/ClassTreeMask.h"
+#include "core/BaseObject.h"
+
+#include "orxonox/objects/worldentities/ControllableEntity.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport CheckPoint : public DistanceTrigger
+  class _OrxonoxExport CheckPoint : public DistanceTrigger
     {
     public:
-        CheckPoint(BaseObject* creator);
-        virtual ~CheckPoint();
+      CheckPoint(BaseObject* creator);
+      virtual ~CheckPoint();
         
-        virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a CheckPoint object through XML.
+      virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a CheckPoint object through XML.
 
-	
     private:
-       virtual void triggered(bool bIsTriggered); 
-
-       bool bIsDestination_;	
-    };
-
+      virtual void triggered(bool bIsTriggered); 
+      virtual void setDestination(bool isDestination);
+      virtual bool getDestination();	
+      
+      bool bIsDestination_;
+  };
 }
 
Index: /code/branches/gametypes/src/orxonox/objects/worldentities/triggers/Trigger.h
===================================================================
--- /code/branches/gametypes/src/orxonox/objects/worldentities/triggers/Trigger.h	(revision 2935)
+++ /code/branches/gametypes/src/orxonox/objects/worldentities/triggers/Trigger.h	(revision 2936)
@@ -89,4 +89,7 @@
         { return this->remainingActivations_; }
 
+      inline void setVisible(bool visibility)
+        { this->debugBillboard_.setVisible(visibility); }
+
       void setDelay(float delay);
       inline float getDelay() const
