Index: /code/branches/objecthierarchy/src/orxonox/objects/DistanceTrigger.cc
===================================================================
--- /code/branches/objecthierarchy/src/orxonox/objects/DistanceTrigger.cc	(revision 1968)
+++ /code/branches/objecthierarchy/src/orxonox/objects/DistanceTrigger.cc	(revision 1969)
@@ -69,5 +69,5 @@
   }
 
-  void DistanceTrigger::addTargets(std::string targets)
+  void DistanceTrigger::addTargets(const std::string& targets)
   {
     Identifier* targetId = ClassByString(targets);
@@ -78,5 +78,5 @@
   }
 
-  void DistanceTrigger::removeTargets(std::string targets)
+  void DistanceTrigger::removeTargets(const std::string& targets)
   {
     Identifier* targetId = ClassByString(targets);
Index: /code/branches/objecthierarchy/src/orxonox/objects/DistanceTrigger.h
===================================================================
--- /code/branches/objecthierarchy/src/orxonox/objects/DistanceTrigger.h	(revision 1968)
+++ /code/branches/objecthierarchy/src/orxonox/objects/DistanceTrigger.h	(revision 1969)
@@ -48,6 +48,6 @@
       void addTarget(Ogre::Node* targetNode);
       void removeTarget(Ogre::Node* targetNode);
-      void addTargets(std::string targets);
-      void removeTargets(std::string targets);
+      void addTargets(const std::string& targets);
+      void removeTargets(const std::string& targets);
       void setDistance(float dist);
       virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
Index: /code/branches/objecthierarchy/src/orxonox/objects/Trigger.cc
===================================================================
--- /code/branches/objecthierarchy/src/orxonox/objects/Trigger.cc	(revision 1968)
+++ /code/branches/objecthierarchy/src/orxonox/objects/Trigger.cc	(revision 1969)
@@ -39,5 +39,5 @@
 {
 
-  SetConsoleCommand(Trigger, setVisibility, false).accessLevel(AccessLevel::User).defaultValues(0);
+  SetConsoleCommand(Trigger, debugFlares, false).defaultValues(false);
 
   CreateFactory(Trigger);
@@ -58,4 +58,6 @@
 
     debugBillboard_.setBillboardSet("Examples/Flare", ColourValue(1.0, 0.0, 0.0), 1);
+    debugBillboard_.setVisible(false);
+
     this->getNode()->attachObject(debugBillboard_.getBillboardSet());
   }
@@ -67,14 +69,16 @@
   void Trigger::init()
   {
-    this->setVisibility(true);
     timeSinceLastEvent_ = delay_;
   }
 
-  void Trigger::setVisibility(bool bVisible)
-  {
-    if(bVisible)
-      this->setScale(2);
-    else
-      this->setScale(0);
+  void Trigger::debugFlares(bool bVisible)
+  {
+    for (ObjectList<Trigger>::iterator it = ObjectList<Trigger>::begin(); it != ObjectList<Trigger>::end(); ++it)
+      it->setVisible(bVisible);
+  }
+
+  void Trigger::changedVisibility()
+  {
+    debugBillboard_.setVisible(this->isVisible());
   }
 
@@ -206,5 +210,5 @@
   }
 
-  void Trigger::setMode(std::string modeName)
+  void Trigger::setMode(const std::string& modeName)
   {
     if (modeName == "and")
@@ -224,5 +228,5 @@
     XMLPortParamLoadOnly(Trigger, "activations", setActivations, xmlelement, mode);
     XMLPortParamLoadOnly(Trigger, "invert", setInvert, xmlelement, mode);
-    //XMLPortParamLoadOnlyTemplate(Trigger, "mode", setMode, xmlelement, mode, std::string);
+    XMLPortParamLoadOnlyTemplate(Trigger, "mode", setMode, xmlelement, mode, const std::string&);
 
     XMLPortObject(Trigger, Trigger, "", addTrigger, getTrigger, xmlelement, mode);
Index: /code/branches/objecthierarchy/src/orxonox/objects/Trigger.h
===================================================================
--- /code/branches/objecthierarchy/src/orxonox/objects/Trigger.h	(revision 1968)
+++ /code/branches/objecthierarchy/src/orxonox/objects/Trigger.h	(revision 1969)
@@ -54,18 +54,30 @@
       ~Trigger();
 
-      inline bool isActive() { return bActive_; }
+      virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+      virtual void tick(float dt);
+
+      inline bool isActive() const
+        { return bActive_; }
+
       void addTrigger(Trigger* trig);
-      void setInvert(int invert) { bInvertMode_ = invert; }
       const Trigger* getTrigger(unsigned int index) const;
-      void setVisibility(bool bVisible);
+
+      inline TriggerMode getMode() const
+        { return mode_; }
+      inline void setMode(TriggerMode mode)
+        { this->mode_ = mode; }
+      void setMode(const std::string& modeName);
+
+      inline void setInvert(int invert)
+        { bInvertMode_ = invert; }
+      inline void setStayOn(int stayOn)
+        { this->bStayOn_ = (stayOn == 1) ? true : false; }
+      inline void setActivations(int activations)
+        { this->remainingActivations_ = activations; }
       void setDelay(float delay);
       bool switchState();
-      virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
-      inline TriggerMode getMode() { return mode_; }
-      inline void setMode(TriggerMode mode) { this->mode_ = mode; }
-      void setMode(std::string modeName);
-      inline void setStayOn(int stayOn) { if (stayOn == 1) this->bStayOn_ = true; else this->bStayOn_ = false; }
-      inline void setActivations(int activations) { this->remainingActivations_ = activations; }
-      void tick(float dt);
+
+      static void debugFlares(bool bVisible);
+      virtual void changedVisibility();
 
     private:
