Index: trunk/src/lib/event/event_def.h
===================================================================
--- trunk/src/lib/event/event_def.h	(revision 7865)
+++ trunk/src/lib/event/event_def.h	(revision 7868)
@@ -12,5 +12,4 @@
 #include "SDL/SDL_keysym.h"
 #endif
-#include "stdincl.h"
 
 
Index: trunk/src/lib/event/event_handler.cc
===================================================================
--- trunk/src/lib/event/event_handler.cc	(revision 7865)
+++ trunk/src/lib/event/event_handler.cc	(revision 7868)
@@ -171,21 +171,34 @@
    unsubscribe(EventListener* el, elState state) function
 */
-void EventHandler::unsubscribe(elState state, int eventType)
+void EventHandler::unsubscribe(EventListener* el, elState state, int eventType)
 {
   PRINTF(4)("Unsubscribing event type nr: %i\n", eventType);
   if (state == ES_ALL)
     for (unsigned int i = 0; i < ES_NUMBER; i++)
-      this->listeners[i][eventType].clear();
-  else
-    this->listeners[state][eventType].clear();
-}
-
-
-/**
- * unsubscribe all events from a specific listener
+    {
+      std::vector<EventListener*>::iterator listener =
+         std::find(this->listeners[i][eventType].begin(),
+                   this->listeners[i][eventType].end(),
+                   el);
+      if (listener != this->listeners[i][eventType].end())
+        this->listeners[i][eventType].erase(listener);
+    }
+  else
+  {
+    std::vector<EventListener*>::iterator listener =
+        std::find(this->listeners[state][eventType].begin(),
+                  this->listeners[state][eventType].end(),
+                  el);
+    if (listener != this->listeners[state][eventType].end())
+      this->listeners[state][eventType].erase(listener);
+  }
+}
+
+
+/**
+ * @brief unsubscribe all events from a specific listener
  * @param el: the listener that wants to unsubscribe itself
  * @param state: the state in which the events shall be unsubscribed
-
-*/
+ */
 void EventHandler::unsubscribe(EventListener* el, elState state)
 {
Index: trunk/src/lib/event/event_handler.h
===================================================================
--- trunk/src/lib/event/event_handler.h	(revision 7865)
+++ trunk/src/lib/event/event_handler.h	(revision 7868)
@@ -35,5 +35,5 @@
 
   void subscribe(EventListener* el, elState state, int eventType);
-  void unsubscribe(elState state, int eventType);
+  void unsubscribe(EventListener* el, elState state, int eventType);
   void unsubscribe(EventListener* el, elState state = ES_ALL);
   void flush(elState state);
Index: trunk/src/lib/event/event_listener.cc
===================================================================
--- trunk/src/lib/event/event_listener.cc	(revision 7865)
+++ trunk/src/lib/event/event_listener.cc	(revision 7868)
@@ -19,10 +19,7 @@
 #include "event_handler.h"
 
-using namespace std;
-
-
 /**
- *  standard constructor
-*/
+ * @brief standard constructor
+ */
 EventListener::EventListener ()
 {
@@ -32,6 +29,8 @@
 
 /**
- *  standard deconstructor
-*/
+ * @brief standard deconstructor
+ *
+ * Unsubscribes all Subscribed Events, of this EventListener.
+ */
 EventListener::~EventListener ()
 {
@@ -39,2 +38,35 @@
   EventHandler::getInstance()->unsubscribe(this, ES_ALL);
 }
+
+bool EventListener::isEventSubscribed(elState state, int eventType) const
+{
+  return EventHandler::getInstance()->isSubscribed(state, eventType);
+}
+
+
+/**
+ * @brief Subscribes an Events to this EventListener.
+ * @param state the state to subscribe to.
+ * @param eventType the Type of Event to subscribe.
+ */
+void EventListener::subscribeEvent(elState state, int eventType)
+{
+  EventHandler::getInstance()->subscribe(this, state, eventType);
+}
+
+
+/**
+ * @brief Unubscribes an Event from this EventListener.
+ * @param state the state to unsubscribe from.
+ * @param eventType the Type of Event to unsubscribe.
+ */
+void EventListener::unsubscribeEvent(elState state, int eventType)
+{
+  EventHandler::getInstance()->unsubscribe(this, state, eventType);
+}
+
+void EventListener::unsubscribeEvents(elState state)
+{
+  EventHandler::getInstance()->unsubscribe(this, state);
+}
+
Index: trunk/src/lib/event/event_listener.h
===================================================================
--- trunk/src/lib/event/event_listener.h	(revision 7865)
+++ trunk/src/lib/event/event_listener.h	(revision 7868)
@@ -9,4 +9,5 @@
 #include "base_object.h"
 #include "event.h"
+#include "event_def.h"
 
 //! A class for event listener
@@ -17,9 +18,16 @@
   virtual ~EventListener();
 
+  bool isEventSubscribed(elState state, int eventType) const;
+
+  void subscribeEvent(elState state, int eventType);
+  void unsubscribeEvent(elState state, int eventType);
+  void unsubscribeEvents(elState state = ES_ALL);
+
   /**
-   * abstract function that processes events from the handler
+   * @brief abstract function that processes events from the handler
    * @param event: the event
    */
   virtual void process(const Event &event) = 0;
+
 };
 
Index: trunk/src/lib/graphics/graphics_engine.cc
===================================================================
--- trunk/src/lib/graphics/graphics_engine.cc	(revision 7865)
+++ trunk/src/lib/graphics/graphics_engine.cc	(revision 7868)
@@ -18,5 +18,4 @@
 #include "graphics_engine.h"
 #include "util/loading/resource_manager.h"
-#include "event_handler.h"
 #include "state.h"
 
Index: trunk/src/lib/gui/gl_gui/glgui_handler.cc
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_handler.cc	(revision 7865)
+++ trunk/src/lib/gui/gl_gui/glgui_handler.cc	(revision 7868)
@@ -31,4 +31,6 @@
     this->setClassID(CL_GLGUI_HANDLER, "GLGuiHandler");
     this->setName("GLGuiHandler");
+
+    //this->subscribeEvent()
 
   }
Index: trunk/src/lib/gui/gl_gui/glgui_widget.h
===================================================================
--- trunk/src/lib/gui/gl_gui/glgui_widget.h	(revision 7865)
+++ trunk/src/lib/gui/gl_gui/glgui_widget.h	(revision 7868)
@@ -56,5 +56,16 @@
     bool focusOverWidget(float x, float y);
 
-    // if something was clickt on the GUI-widget.
+
+    virtual void update() {};
+    virtual void draw() const;
+
+    Material& backMaterial() { return this->backMat; };
+    const Material& backMaterial() const { return this->backMat; };
+
+    Material& frontMaterial() { return this->frontMat; };
+    const Material& frontMaterial() const { return this->frontMat; };
+
+  protected:
+        // if something was clickt on the GUI-widget.
     virtual void clicked(const Event& event) {};
     virtual void released(const Event& event) {};
@@ -65,11 +76,5 @@
     virtual void destroyed() {};
 
-    virtual void update() {};
-    virtual void draw() const;
 
-    Material& backMaterial() { return this->backMat; };
-    Material& frontMaterial() { return this->frontMat; };
-
-  protected:
     inline void startDraw() const { glPushMatrix(); glTranslatef(this->getAbsCoor2D().x, this->getAbsCoor2D().y, 0); };
     inline void endDraw() const { glPopMatrix(); };
Index: trunk/src/lib/shell/shell.cc
===================================================================
--- trunk/src/lib/shell/shell.cc	(revision 7865)
+++ trunk/src/lib/shell/shell.cc	(revision 7868)
@@ -65,9 +65,9 @@
 
     // EVENT-Handler subscription of '`' to all States.
-    EventHandler::getInstance()->subscribe(this, ES_ALL, SDLK_BACKQUOTE);
-    EventHandler::getInstance()->subscribe(this, ES_ALL, SDLK_F12);
-    EventHandler::getInstance()->subscribe(this, ES_SHELL, SDLK_PAGEUP);
-    EventHandler::getInstance()->subscribe(this, ES_SHELL, SDLK_PAGEDOWN);
-    EventHandler::getInstance()->subscribe(this, ES_SHELL, EV_VIDEO_RESIZE);
+    this->subscribeEvent(ES_ALL, SDLK_BACKQUOTE);
+    this->subscribeEvent(ES_ALL, SDLK_F12);
+    this->subscribeEvent(ES_SHELL, SDLK_PAGEUP);
+    this->subscribeEvent(ES_SHELL, SDLK_PAGEDOWN);
+    this->subscribeEvent(ES_SHELL, EV_VIDEO_RESIZE);
 
     // BUFFER
Index: trunk/src/lib/shell/shell_input.cc
===================================================================
--- trunk/src/lib/shell/shell_input.cc	(revision 7865)
+++ trunk/src/lib/shell/shell_input.cc	(revision 7868)
@@ -20,5 +20,4 @@
 #include "shell_command.h"
 #include "shell_command_class.h"
-#include "event_handler.h"
 
 #include "debug.h"
@@ -50,16 +49,15 @@
     this->setRepeatDelay(.3, .05);
 
-    // subscribe all keyboard commands to ES_SEHLL
-    EventHandler* evh = EventHandler::getInstance();
+    // subscribe all keyboard commands to ES_SHELL
     for (int i = 1; i < SDLK_LAST; i++)
     {
-      if (!evh->isSubscribed(ES_SHELL, i))
-        evh->subscribe(this, ES_SHELL, i);
+      if (!this->isEventSubscribed(ES_SHELL, i))
+        this->subscribeEvent(ES_SHELL, i);
     }
     // unsubscribe unused TODO improve.
-    evh->unsubscribe(ES_SHELL, SDLK_BACKQUOTE);
-    evh->unsubscribe(ES_SHELL, SDLK_F12);
-    evh->unsubscribe(ES_SHELL, SDLK_PAGEUP);
-    evh->unsubscribe(ES_SHELL, SDLK_PAGEDOWN);
+    this->unsubscribeEvent(ES_SHELL, SDLK_BACKQUOTE);
+    this->unsubscribeEvent(ES_SHELL, SDLK_F12);
+    this->unsubscribeEvent(ES_SHELL, SDLK_PAGEUP);
+    this->unsubscribeEvent(ES_SHELL, SDLK_PAGEDOWN);
 
   }
Index: trunk/src/lib/util/loading/game_loader.cc
===================================================================
--- trunk/src/lib/util/loading/game_loader.cc	(revision 7865)
+++ trunk/src/lib/util/loading/game_loader.cc	(revision 7868)
@@ -26,275 +26,271 @@
 #include "util/loading/resource_manager.h"
 
-#include "event_handler.h"
-
-
-namespace OrxShell
-{
-
-  SHELL_COMMAND(quit, GameLoader, stop)
-  ->describe("quits the game")
-  ->setAlias("orxoquit");
-
-
-  GameLoader* GameLoader::singletonRef = NULL;
-
-
-  /**
-   *  simple constructor
-   */
-  GameLoader::GameLoader ()
-  {
-    this->setClassID(CL_GAME_LOADER, "GameLoader");
-    this->setName("GameLoader");
-    this->bRun = true;
-  }
-
-
-  /**
-   *  simple deconstructor
-   */
-  GameLoader::~GameLoader ()
-  {
-    if( this->currentCampaign)
-      delete this->currentCampaign;
-    this->currentCampaign = NULL;
-  }
-
-
-  /**
-   *  initializes the GameLoader
-   */
-  ErrorMessage GameLoader::init()
-  {
-    if(this->currentCampaign != NULL)
-      this->currentCampaign->init();
-
-    this->eventHandler = EventHandler::getInstance();
-    this->eventHandler->subscribe(this, ES_GAME, KeyMapper::PEV_PAUSE);
-    this->eventHandler->subscribe(this, ES_ALL, EV_MAIN_QUIT);          //< External Quit Event
-    this->eventHandler->subscribe(this, ES_GAME, KeyMapper::PEV_QUIT);
-    this->eventHandler->subscribe(this, ES_GAME, KeyMapper::PEV_NEXT_WORLD);
-    this->eventHandler->subscribe(this, ES_GAME, KeyMapper::PEV_PREVIOUS_WORLD);
-  }
-
-
-  /**
-   *  reads a campaign definition file into a campaign class
-   * @param fileName to be loaded
-   * @returns the loaded campaign
-   *
-   * this will interprete the map/campaign files and recursivly load a tree of worlds/campaigns
-   */
-  ErrorMessage GameLoader::loadCampaign(const std::string& fileName)
-  {
-    ErrorMessage errorCode;
-    std::string campaignName = ResourceManager::getFullName(fileName);
-    if (!campaignName.empty())
+#include "key_mapper.h"
+
+
+
+SHELL_COMMAND(quit, GameLoader, stop)
+->describe("quits the game")
+->setAlias("orxoquit");
+
+
+GameLoader* GameLoader::singletonRef = NULL;
+
+
+/**
+ *  simple constructor
+ */
+GameLoader::GameLoader ()
+{
+  this->setClassID(CL_GAME_LOADER, "GameLoader");
+  this->setName("GameLoader");
+  this->bRun = true;
+}
+
+
+/**
+ *  simple deconstructor
+ */
+GameLoader::~GameLoader ()
+{
+  if( this->currentCampaign)
+    delete this->currentCampaign;
+  this->currentCampaign = NULL;
+}
+
+
+/**
+ *  initializes the GameLoader
+ */
+ErrorMessage GameLoader::init()
+{
+  if(this->currentCampaign != NULL)
+    this->currentCampaign->init();
+
+  this->subscribeEvent(ES_GAME, KeyMapper::PEV_PAUSE);
+  this->subscribeEvent(ES_ALL, EV_MAIN_QUIT);          //< External Quit Event
+  this->subscribeEvent(ES_GAME, KeyMapper::PEV_QUIT);
+  this->subscribeEvent(ES_GAME, KeyMapper::PEV_NEXT_WORLD);
+  this->subscribeEvent(ES_GAME, KeyMapper::PEV_PREVIOUS_WORLD);
+}
+
+
+/**
+ *  reads a campaign definition file into a campaign class
+ * @param fileName to be loaded
+ * @returns the loaded campaign
+ *
+ * this will interprete the map/campaign files and recursivly load a tree of worlds/campaigns
+ */
+ErrorMessage GameLoader::loadCampaign(const std::string& fileName)
+{
+  ErrorMessage errorCode;
+  std::string campaignName = ResourceManager::getFullName(fileName);
+  if (!campaignName.empty())
+  {
+    this->currentCampaign = this->fileToCampaign(campaignName);
+  }
+}
+
+
+/**
+ *  reads a campaign definition file into a campaign class
+ * @param fileName to be loaded
+ * @returns the loaded campaign
+ *
+ * this will interprete the map/campaign files and recursivly load a tree of worlds/campaigns
+ */
+ErrorMessage GameLoader::loadNetworkCampaign(const std::string& fileName)
+{
+  ErrorMessage errorCode;
+  std::string campaignName = ResourceManager::getFullName(fileName);
+  if (!campaignName.empty())
+  {
+    this->currentCampaign = this->fileToCampaign(campaignName);
+  }
+}
+
+
+/**
+ *  loads a debug campaign for test purposes only.
+ * @param campaignID the identifier of the campaign.
+ * @returns error message if not able to do so.
+ */
+ErrorMessage GameLoader::loadDebugCampaign(Uint32 campaignID)
+{
+  switch(campaignID)
+  {
+      /*
+         Debug Level 0: Debug level used to test the base frame work.
+         As you can see, all storyentity data is allocated before game
+         start. the storyentity will load themselfs shortly before start
+         through the StoryEntity::init() funtion.
+      */
+    case DEBUG_CAMPAIGN_0:
+      {
+        /*        Campaign* debugCampaign = new Campaign();
+
+                World* world0 = new World(DEBUG_WORLD_0);
+                world0->setNextStoryID(WORLD_ID_1);
+                debugCampaign->addEntity(world0, WORLD_ID_0);
+
+                World* world1 = new World(DEBUG_WORLD_1);
+                world1->setNextStoryID(WORLD_ID_2);
+                debugCampaign->addEntity(world1, WORLD_ID_1);
+
+                World* world2 = new World(DEBUG_WORLD_2);
+                world2->setNextStoryID(WORLD_ID_GAMEEND);
+                debugCampaign->addEntity(world2, WORLD_ID_2);
+
+                this->currentCampaign = debugCampaign;
+                break;*/
+      }
+  }
+}
+
+
+/**
+ *  starts the current entity
+ * @returns error code if this action has caused a error
+ */
+ErrorMessage GameLoader::start()
+{
+  if(this->currentCampaign != NULL)
+  {
+    this->currentCampaign->start();
+  }
+}
+
+
+/**
+ *  stops the current entity
+ * @returns error code if this action has caused a error
+ *
+ *  ATTENTION: this function shouldn't call other functions, or if so, they must return
+ *  after finishing. If you ignore or forget to do so, the current entity is not able to
+ *  terminate and it will run in the background or the ressources can't be freed or even
+ *  worse: are freed and the program will end in a segmentation fault!
+ *  hehehe, have ya seen it... :)
+ */
+void GameLoader::stop()
+{
+  if(this->currentCampaign != NULL)
+    this->currentCampaign->stop();
+}
+
+
+/**
+ *  pause the current entity
+ * @returns error code if this action has caused a error
+ *
+ * this pauses the current entity or passes this call forth to the running entity.
+ */
+ErrorMessage GameLoader::pause()
+{
+  this->isPaused = true;
+  if(this->currentCampaign != NULL)
+    this->currentCampaign->pause();
+}
+
+
+/**
+ *  resumes a pause
+ * @returns error code if this action has caused a error
+ *
+ *  this resumess the current entity or passes this call forth to the running entity.
+ */
+ErrorMessage GameLoader::resume()
+{
+  this->isPaused = false;
+  if(this->currentCampaign != NULL)
+    this->currentCampaign->resume();
+}
+
+
+/**
+ *  reads a campaign definition file into a campaign class
+ * @param fileName to be loaded
+ * @returns the loaded campaign
+ *
+ * this will interprete the map/campaign files and recursivly load a tree of worlds/campaigns
+ */
+Campaign* GameLoader::fileToCampaign(const std::string& fileName)
+{
+  /* do not entirely load the campaign. just the current world
+     before start of each world, it has to be initialized so it
+     can load everything it needs into memory then.
+  */
+
+  if( fileName.empty())
+  {
+    PRINTF(2)("No filename specified for loading");
+    return NULL;
+  }
+
+  TiXmlDocument XMLDoc(fileName);
+  // load the campaign document
+  if( !XMLDoc.LoadFile(fileName))
+  {
+    // report an error
+    PRINTF(1)("Could not load XML File %s: %s @ %d:%d\n", fileName.c_str(), XMLDoc.ErrorDesc(), XMLDoc.ErrorRow(), XMLDoc.ErrorCol());
+    return NULL;
+  }
+
+  // check basic validity
+  TiXmlElement* root = XMLDoc.RootElement();
+  assert( root != NULL);
+
+  if( strcmp( root->Value(), "Campaign"))
+  {
+    // report an error
+    PRINTF(2)("Specified XML File is not an orxonox campaign file (Campaign element missing)\n");
+    return NULL;
+  }
+
+  // construct campaign
+  return new Campaign( root);
+}
+
+
+
+/**
+ *  handle keyboard commands
+ * @param event the event to handle
+ */
+void GameLoader::process(const Event& event)
+{
+  if( event.type == KeyMapper::PEV_NEXT_WORLD)
+  {
+    if( likely(event.bPressed))
     {
-      this->currentCampaign = this->fileToCampaign(campaignName);
+      this->switchToNextLevel();
     }
   }
-
-
-  /**
-   *  reads a campaign definition file into a campaign class
-   * @param fileName to be loaded
-   * @returns the loaded campaign
-   *
-   * this will interprete the map/campaign files and recursivly load a tree of worlds/campaigns
-   */
-  ErrorMessage GameLoader::loadNetworkCampaign(const std::string& fileName)
-  {
-    ErrorMessage errorCode;
-    std::string campaignName = ResourceManager::getFullName(fileName);
-    if (!campaignName.empty())
+  else if( event.type == KeyMapper::PEV_PAUSE)
+  {
+    if( likely(event.bPressed))
     {
-      this->currentCampaign = this->fileToCampaign(campaignName);
+      if(this->isPaused)
+        this->resume();
+      else
+        this->pause();
     }
   }
-
-
-  /**
-   *  loads a debug campaign for test purposes only.
-   * @param campaignID the identifier of the campaign.
-   * @returns error message if not able to do so.
-   */
-  ErrorMessage GameLoader::loadDebugCampaign(Uint32 campaignID)
-  {
-    switch(campaignID)
-    {
-        /*
-           Debug Level 0: Debug level used to test the base frame work.
-           As you can see, all storyentity data is allocated before game
-           start. the storyentity will load themselfs shortly before start
-           through the StoryEntity::init() funtion.
-        */
-      case DEBUG_CAMPAIGN_0:
-        {
-          /*        Campaign* debugCampaign = new Campaign();
-
-                  World* world0 = new World(DEBUG_WORLD_0);
-                  world0->setNextStoryID(WORLD_ID_1);
-                  debugCampaign->addEntity(world0, WORLD_ID_0);
-
-                  World* world1 = new World(DEBUG_WORLD_1);
-                  world1->setNextStoryID(WORLD_ID_2);
-                  debugCampaign->addEntity(world1, WORLD_ID_1);
-
-                  World* world2 = new World(DEBUG_WORLD_2);
-                  world2->setNextStoryID(WORLD_ID_GAMEEND);
-                  debugCampaign->addEntity(world2, WORLD_ID_2);
-
-                  this->currentCampaign = debugCampaign;
-                  break;*/
-        }
-    }
-  }
-
-
-  /**
-   *  starts the current entity
-   * @returns error code if this action has caused a error
-   */
-  ErrorMessage GameLoader::start()
-  {
-    if(this->currentCampaign != NULL)
-    {
-      this->currentCampaign->start();
-    }
-  }
-
-
-  /**
-   *  stops the current entity
-   * @returns error code if this action has caused a error
-   *
-   *  ATTENTION: this function shouldn't call other functions, or if so, they must return
-   *  after finishing. If you ignore or forget to do so, the current entity is not able to
-   *  terminate and it will run in the background or the ressources can't be freed or even
-   *  worse: are freed and the program will end in a segmentation fault!
-   *  hehehe, have ya seen it... :)
-   */
-  void GameLoader::stop()
-  {
-    if(this->currentCampaign != NULL)
-      this->currentCampaign->stop();
-  }
-
-
-  /**
-   *  pause the current entity
-   * @returns error code if this action has caused a error
-   *
-   * this pauses the current entity or passes this call forth to the running entity.
-   */
-  ErrorMessage GameLoader::pause()
-  {
-    this->isPaused = true;
-    if(this->currentCampaign != NULL)
-      this->currentCampaign->pause();
-  }
-
-
-  /**
-   *  resumes a pause
-   * @returns error code if this action has caused a error
-   *
-   *  this resumess the current entity or passes this call forth to the running entity.
-   */
-  ErrorMessage GameLoader::resume()
-  {
-    this->isPaused = false;
-    if(this->currentCampaign != NULL)
-      this->currentCampaign->resume();
-  }
-
-
-  /**
-   *  reads a campaign definition file into a campaign class
-   * @param fileName to be loaded
-   * @returns the loaded campaign
-   *
-   * this will interprete the map/campaign files and recursivly load a tree of worlds/campaigns
-   */
-  Campaign* GameLoader::fileToCampaign(const std::string& fileName)
-  {
-    /* do not entirely load the campaign. just the current world
-       before start of each world, it has to be initialized so it
-       can load everything it needs into memory then.
-    */
-
-    if( fileName.empty())
-    {
-      PRINTF(2)("No filename specified for loading");
-      return NULL;
-    }
-
-    TiXmlDocument XMLDoc(fileName);
-    // load the campaign document
-    if( !XMLDoc.LoadFile(fileName))
-    {
-      // report an error
-      PRINTF(1)("Could not load XML File %s: %s @ %d:%d\n", fileName.c_str(), XMLDoc.ErrorDesc(), XMLDoc.ErrorRow(), XMLDoc.ErrorCol());
-      return NULL;
-    }
-
-    // check basic validity
-    TiXmlElement* root = XMLDoc.RootElement();
-    assert( root != NULL);
-
-    if( strcmp( root->Value(), "Campaign"))
-    {
-      // report an error
-      PRINTF(2)("Specified XML File is not an orxonox campaign file (Campaign element missing)\n");
-      return NULL;
-    }
-
-    // construct campaign
-    return new Campaign( root);
-  }
-
-
-
-  /**
-   *  handle keyboard commands
-   * @param event the event to handle
-   */
-  void GameLoader::process(const Event& event)
-  {
-    if( event.type == KeyMapper::PEV_NEXT_WORLD)
-    {
-      if( likely(event.bPressed))
-      {
-        this->switchToNextLevel();
-      }
-    }
-    else if( event.type == KeyMapper::PEV_PAUSE)
-    {
-      if( likely(event.bPressed))
-      {
-        if(this->isPaused)
-          this->resume();
-        else
-          this->pause();
-      }
-    }
-    else if( event.type == KeyMapper::PEV_QUIT)
-    {
-      if( event.bPressed) this->stop();
-    }
-    else if (event.type == EV_MAIN_QUIT)
-      this->stop();
-  }
-
-
-  /**
-   *  this changes to the next level
-   */
-  void GameLoader::switchToNextLevel()
-  {
-    if(this->currentCampaign != NULL)
-      this->currentCampaign->switchToNextLevel();
-  }
-
-}
+  else if( event.type == KeyMapper::PEV_QUIT)
+  {
+    if( event.bPressed) this->stop();
+  }
+  else if (event.type == EV_MAIN_QUIT)
+    this->stop();
+}
+
+
+/**
+ *  this changes to the next level
+ */
+void GameLoader::switchToNextLevel()
+{
+  if(this->currentCampaign != NULL)
+    this->currentCampaign->switchToNextLevel();
+}
+
Index: trunk/src/lib/util/loading/game_loader.h
===================================================================
--- trunk/src/lib/util/loading/game_loader.h	(revision 7865)
+++ trunk/src/lib/util/loading/game_loader.h	(revision 7868)
@@ -23,5 +23,4 @@
 class BaseObject;
 class Event;
-class EventHandler;
 
 //! The GameLoader
@@ -73,6 +72,4 @@
 
   Campaign*              currentCampaign;      //!< reference to the current campaign playing
-
-  EventHandler*          eventHandler;         //!< reference to the eventHandler
 };
 
