Index: /code/branches/questsystem2/src/orxonox/objects/quest/QuestEffectBeacon.cc
===================================================================
--- /code/branches/questsystem2/src/orxonox/objects/quest/QuestEffectBeacon.cc	(revision 2195)
+++ /code/branches/questsystem2/src/orxonox/objects/quest/QuestEffectBeacon.cc	(revision 2196)
@@ -63,5 +63,5 @@
         XMLPortParam(QuestEffectBeacon, "times", setTimes, getTimes, xmlelement, mode);
         XMLPortObject(QuestEffectBeacon, QuestEffect, "", addEffect, getEffect, xmlelement, mode);
-        XMLPortObject(QuestEffectBeacon, Trigger, "", addTrigger, getTrigger, xmlelement, mode);
+        XMLPortObject(QuestEffectBeacon, PlayerTrigger, "", addTrigger, getTrigger, xmlelement, mode);
     }
     
@@ -187,5 +187,5 @@
     }
 
-    const Trigger* QuestEffectBeacon::getTrigger(unsigned int index) const
+    const PlayerTrigger* QuestEffectBeacon::getTrigger(unsigned int index) const
     {
         if(index == 0)
Index: /code/branches/questsystem2/src/orxonox/objects/quest/QuestEffectBeacon.h
===================================================================
--- /code/branches/questsystem2/src/orxonox/objects/quest/QuestEffectBeacon.h	(revision 2195)
+++ /code/branches/questsystem2/src/orxonox/objects/quest/QuestEffectBeacon.h	(revision 2196)
@@ -85,5 +85,5 @@
             
             const QuestEffect* getEffect(unsigned int index) const;
-            const Trigger* getTrigger(unsigned int index) const;
+            const PlayerTrigger* getTrigger(unsigned int index) const;
     
     };
Index: /code/branches/questsystem2/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc
===================================================================
--- /code/branches/questsystem2/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc	(revision 2195)
+++ /code/branches/questsystem2/src/orxonox/objects/worldentities/triggers/DistanceTrigger.cc	(revision 2196)
@@ -45,5 +45,5 @@
     this->distance_ = 100;
     this->targetMask_.exclude(Class(BaseObject));
-    this->player_ = NULL;
+    this->setForPlayer(false);
   }
 
@@ -83,4 +83,10 @@
   void DistanceTrigger::addTargets(const std::string& targets)
   {
+  
+    if(targets == "ControllableEntity")
+    {
+        this->setForPlayer(true);
+    }
+  
     Identifier* targetId = ClassByString(targets);
     if (!targetId)
@@ -119,15 +125,14 @@
       if (distanceVec.length() < this->distance_)
       {
-        this->player_ = dynamic_cast<ControllableEntity*>(entity);
+        if(this->isForPlayer())
+	{
+            ControllableEntity* player = dynamic_cast<ControllableEntity*>(entity);
+            this->setTriggeringPlayer(player);
+	}
+        
         return true;
       }
     }
     return false;
-
-  }
-  
-  ControllableEntity* DistanceTrigger::getTriggeringPlayer(void) const
-  {
-    return this->player_;
   }
 
Index: /code/branches/questsystem2/src/orxonox/objects/worldentities/triggers/DistanceTrigger.h
===================================================================
--- /code/branches/questsystem2/src/orxonox/objects/worldentities/triggers/DistanceTrigger.h	(revision 2195)
+++ /code/branches/questsystem2/src/orxonox/objects/worldentities/triggers/DistanceTrigger.h	(revision 2196)
@@ -58,6 +58,4 @@
       inline float getDistance() const
         { return this->distance_; }
-        
-        virtual ControllableEntity* getTriggeringPlayer(void) const;
 
       bool checkDistance();
@@ -71,6 +69,4 @@
       float distance_;
       
-      ControllableEntity* player_;
-      
   };
 }
Index: /code/branches/questsystem2/src/orxonox/objects/worldentities/triggers/PlayerTrigger.cc
===================================================================
--- /code/branches/questsystem2/src/orxonox/objects/worldentities/triggers/PlayerTrigger.cc	(revision 2195)
+++ /code/branches/questsystem2/src/orxonox/objects/worldentities/triggers/PlayerTrigger.cc	(revision 2196)
@@ -36,4 +36,7 @@
     {
         RegisterObject(PlayerTrigger);
+        
+        this->player_ = NULL;
+        this->isForPlayer_ = true;
     }
     
Index: /code/branches/questsystem2/src/orxonox/objects/worldentities/triggers/PlayerTrigger.h
===================================================================
--- /code/branches/questsystem2/src/orxonox/objects/worldentities/triggers/PlayerTrigger.h	(revision 2195)
+++ /code/branches/questsystem2/src/orxonox/objects/worldentities/triggers/PlayerTrigger.h	(revision 2196)
@@ -48,8 +48,20 @@
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
             
-            virtual ControllableEntity* getTriggeringPlayer(void) const = 0;
+            inline ControllableEntity* getTriggeringPlayer(void) const
+                { return this->player_; }
             
 	protected:
 	    virtual bool isTriggered(TriggerMode mode) = 0;
+	    
+	    inline void setTriggeringPlayer(ControllableEntity* player)
+	       { this->player_ = player; }
+	    inline bool isForPlayer(void) const
+	       { return this->isForPlayer_; }
+	    inline void setForPlayer(bool isForPlayer)
+	       { this->isForPlayer_ = isForPlayer; }
+	    
+	private:
+	    ControllableEntity* player_;
+	    bool isForPlayer_;
 	
     };
