Index: code/branches/core5/src/modules/objects/Attacher.cc
===================================================================
--- code/branches/core5/src/modules/objects/Attacher.cc	(revision 5877)
+++ code/branches/core5/src/modules/objects/Attacher.cc	(revision 5879)
@@ -53,6 +53,6 @@
     void Attacher::processEvent(Event& event)
     {
-        for (std::list<WorldEntity*>::iterator it = this->objects_.begin(); it != this->objects_.end(); ++it)
-            (*it)->fireEvent(event);
+        if (this->target_)
+            this->target_->processEvent(event);
     }
 
@@ -102,6 +102,11 @@
 
         for (ObjectList<WorldEntity>::iterator it = ObjectList<WorldEntity>::begin(); it != ObjectList<WorldEntity>::end(); ++it)
+        {
             if (it->getName() == this->targetname_)
+            {
+                this->target_ = *it;
                 this->attachToParent(*it);
+            }
+        }
     }
 
Index: code/branches/core5/src/modules/objects/triggers/EventTrigger.cc
===================================================================
--- code/branches/core5/src/modules/objects/triggers/EventTrigger.cc	(revision 5877)
+++ code/branches/core5/src/modules/objects/triggers/EventTrigger.cc	(revision 5879)
@@ -47,9 +47,9 @@
     }
 
-    void EventTrigger::processEvent(Event& event)
+    void EventTrigger::XMLEventPort(Element& xmlelement, XMLPort::Mode mode)
     {
-        SUPER(EventTrigger, processEvent, event);
+        SUPER(EventTrigger, XMLEventPort, xmlelement, mode);
 
-        ORXONOX_SET_EVENT(EventTrigger, "trigger", trigger, event);
+        XMLPortEventState(EventTrigger, BaseObject, "trigger", trigger, xmlelement, mode);
     }
 
Index: code/branches/core5/src/modules/objects/triggers/EventTrigger.h
===================================================================
--- code/branches/core5/src/modules/objects/triggers/EventTrigger.h	(revision 5877)
+++ code/branches/core5/src/modules/objects/triggers/EventTrigger.h	(revision 5879)
@@ -41,5 +41,5 @@
             virtual ~EventTrigger();
 
-            virtual void processEvent(Event& event);
+            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
 
             inline void trigger(bool bTriggered)
Index: code/branches/core5/src/modules/questsystem/QuestEffectBeacon.cc
===================================================================
--- code/branches/core5/src/modules/questsystem/QuestEffectBeacon.cc	(revision 5877)
+++ code/branches/core5/src/modules/questsystem/QuestEffectBeacon.cc	(revision 5879)
@@ -75,16 +75,14 @@
         XMLPortObject(QuestEffectBeacon, QuestEffect, "effects", addEffect, getEffect, xmlelement, mode);
 
+        XMLPortEventState(QuestEffectBeacon, PlayerTrigger, "execute", execute, xmlelement, mode);
+
         COUT(3) << "New QuestEffectBeacon created." << std::endl;
     }
 
-    /**
-    @brief
-        Processes an event for this QuestEffectBeacon.
-    */
-    void QuestEffectBeacon::processEvent(Event& event)
-    {
-        SUPER(QuestEffectBeacon, processEvent, event);
-
-        ORXONOX_SET_SUBCLASS_EVENT(QuestEffectBeacon, "execute", execute, event, PlayerTrigger);
+    void QuestEffectBeacon::XMLEventPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(QuestEffectBeacon, XMLEventPort, xmlelement, mode);
+
+        XMLPortEventState(QuestEffectBeacon, PlayerTrigger, "execute", execute, xmlelement, mode);
     }
 
Index: code/branches/core5/src/modules/questsystem/QuestEffectBeacon.h
===================================================================
--- code/branches/core5/src/modules/questsystem/QuestEffectBeacon.h	(revision 5877)
+++ code/branches/core5/src/modules/questsystem/QuestEffectBeacon.h	(revision 5879)
@@ -86,6 +86,5 @@
 
             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestEffectBeacon object through XML.
-
-            virtual void processEvent(Event& event); //!< Processes an event for this QuestEffectBeacon.
+            virtual void XMLEventPort(Element& xmlelement, XMLPort::Mode mode);
 
             bool execute(bool b, PlayerTrigger* trigger); //!< Executes the QuestEffects of the QuestEffectBeacon.
