Index: code/branches/pch/src/core/input/ExtendedInputState.cc
===================================================================
--- code/branches/pch/src/core/input/ExtendedInputState.cc	(revision 3147)
+++ code/branches/pch/src/core/input/ExtendedInputState.cc	(revision 3148)
@@ -36,5 +36,5 @@
 
 #include <cassert>
-#include "util/Debug.h"
+#include "core/Executor.h"
 
 namespace orxonox
@@ -457,3 +457,15 @@
         this->bHandlersChanged_ = true;
     }
+
+    void ExtendedInputState::onEnter()
+    {
+        if (executorOnEnter_)
+            (*executorOnEnter_)();
+    }
+
+    void ExtendedInputState::onLeave()
+    {
+        if (executorOnLeave_)
+            (*executorOnLeave_)();
+    }
 }
Index: code/branches/pch/src/core/input/ExtendedInputState.h
===================================================================
--- code/branches/pch/src/core/input/ExtendedInputState.h	(revision 3147)
+++ code/branches/pch/src/core/input/ExtendedInputState.h	(revision 3148)
@@ -38,5 +38,4 @@
 
 #include <vector>
-
 #include "InputInterfaces.h"
 #include "InputState.h"
@@ -89,4 +88,7 @@
         void update();
 
+        void onEnter();
+        void onLeave();
+
         std::vector<KeyHandler*>                    keyHandlers_;
         std::vector<MouseHandler*>                  mouseHandlers_;
Index: code/branches/pch/src/core/input/HalfAxis.h
===================================================================
--- code/branches/pch/src/core/input/HalfAxis.h	(revision 3147)
+++ code/branches/pch/src/core/input/HalfAxis.h	(revision 3148)
@@ -37,4 +37,5 @@
 
 #include "core/CorePrereqs.h"
+
 #include "Button.h"
 #include "InputCommands.h"
Index: code/branches/pch/src/core/input/InputBuffer.cc
===================================================================
--- code/branches/pch/src/core/input/InputBuffer.cc	(revision 3147)
+++ code/branches/pch/src/core/input/InputBuffer.cc	(revision 3148)
@@ -28,6 +28,4 @@
 
 #include "InputBuffer.h"
-
-#include <iostream>
 
 #include "util/Clipboard.h"
@@ -57,5 +55,5 @@
     }
 
-    InputBuffer::InputBuffer(const std::string allowedChars)
+    InputBuffer::InputBuffer(const std::string& allowedChars)
     {
         RegisterRootObject(InputBuffer);
Index: code/branches/pch/src/core/input/InputBuffer.h
===================================================================
--- code/branches/pch/src/core/input/InputBuffer.h	(revision 3147)
+++ code/branches/pch/src/core/input/InputBuffer.h	(revision 3148)
@@ -32,7 +32,6 @@
 #include "core/CorePrereqs.h"
 
+#include <list>
 #include <string>
-#include <list>
-
 #include "core/OrxonoxClass.h"
 #include "InputInterfaces.h"
@@ -80,5 +79,5 @@
             InputBuffer();
             ~InputBuffer();
-            InputBuffer(const std::string allowedChars);
+            InputBuffer(const std::string& allowedChars);
 
             void setConfigValues();
@@ -145,5 +144,5 @@
             void updated(const char& update, bool bSingleInput);
 
-            inline std::string get() const
+            inline const std::string& get() const
                 { return this->buffer_; }
             inline unsigned int getSize() const
Index: code/branches/pch/src/core/input/InputCommands.cc
===================================================================
--- code/branches/pch/src/core/input/InputCommands.cc	(revision 3147)
+++ code/branches/pch/src/core/input/InputCommands.cc	(revision 3148)
@@ -35,5 +35,4 @@
 #include "InputCommands.h"
 #include "util/Math.h"
-#include "core/CommandExecutor.h"
 
 namespace orxonox
Index: code/branches/pch/src/core/input/InputInterfaces.h
===================================================================
--- code/branches/pch/src/core/input/InputInterfaces.h	(revision 3147)
+++ code/branches/pch/src/core/input/InputInterfaces.h	(revision 3148)
@@ -38,7 +38,7 @@
 #include "core/CorePrereqs.h"
 
-#include "ois/OISKeyboard.h"
-#include "ois/OISMouse.h"
-#include "ois/OISJoyStick.h"
+#include <ois/OISKeyboard.h>
+#include <ois/OISMouse.h>
+#include <ois/OISJoyStick.h>
 #include "util/Math.h"
 
Index: code/branches/pch/src/core/input/InputManager.cc
===================================================================
--- code/branches/pch/src/core/input/InputManager.cc	(revision 3147)
+++ code/branches/pch/src/core/input/InputManager.cc	(revision 3148)
@@ -38,24 +38,21 @@
 #include <climits>
 #include <cassert>
-
-#include "ois/OISException.h"
-#include "ois/OISInputManager.h"
-#include "core/ConsoleCommand.h"
+#include <ois/OISException.h>
+#include <ois/OISInputManager.h>
 
 // HACK
 #ifdef ORXONOX_PLATFORM_LINUX
-#  include "ois/linux/LinuxMouse.h"
+#  include <ois/linux/LinuxMouse.h>
 #endif
 
 #include "util/Exception.h"
+#include "util/Debug.h"
+#include "core/ConsoleCommand.h"
 #include "core/Clock.h"
 #include "core/CoreIncludes.h"
 #include "core/ConfigValueIncludes.h"
-#include "core/CommandExecutor.h"
 #include "core/CommandLine.h"
-#include "util/Debug.h"
 
 #include "InputBuffer.h"
-#include "KeyBinder.h"
 #include "KeyDetector.h"
 #include "InputState.h"
Index: code/branches/pch/src/core/input/InputManager.h
===================================================================
--- code/branches/pch/src/core/input/InputManager.h	(revision 3147)
+++ code/branches/pch/src/core/input/InputManager.h	(revision 3148)
@@ -40,6 +40,11 @@
 
 #include <map>
+#include <set>
+#include <string>
 #include <vector>
-#include <stack>
+#include <ois/OISKeyboard.h>
+#include <ois/OISMouse.h>
+#include <ois/OISJoyStick.h>
+
 #include "util/Math.h"
 #include "util/OrxEnum.h"
Index: code/branches/pch/src/core/input/InputState.h
===================================================================
--- code/branches/pch/src/core/input/InputState.h	(revision 3147)
+++ code/branches/pch/src/core/input/InputState.h	(revision 3148)
@@ -39,5 +39,4 @@
 #include <string>
 #include <vector>
-#include "core/Executor.h"
 #include "InputInterfaces.h"
 
@@ -63,6 +62,6 @@
         void resetHandlersChanged() { bHandlersChanged_ = false; }
 
-        virtual void onEnter() { if (executorOnEnter_) (*executorOnEnter_)(); }
-        virtual void onLeave() { if (executorOnLeave_) (*executorOnLeave_)(); }
+        virtual void onEnter() = 0;
+        virtual void onLeave() = 0;
 
         virtual void registerOnEnter(Executor* executor)      { executorOnEnter_ = executor; }
@@ -108,4 +107,6 @@
 
         bool bHandlersChanged_;
+        Executor*                                   executorOnEnter_;
+        Executor*                                   executorOnLeave_;
 
     private:
@@ -123,7 +124,4 @@
         bool                                        bAlwaysGetsInput_;
         bool                                        bTransparent_;
-
-        Executor*                                   executorOnEnter_;
-        Executor*                                   executorOnLeave_;
     };
 }
Index: code/branches/pch/src/core/input/KeyBinder.cc
===================================================================
--- code/branches/pch/src/core/input/KeyBinder.cc	(revision 3147)
+++ code/branches/pch/src/core/input/KeyBinder.cc	(revision 3148)
@@ -33,7 +33,4 @@
 
 #include "KeyBinder.h"
-
-#include <fstream>
-#include <string>
 
 #include "util/Convert.h"
Index: code/branches/pch/src/core/input/KeyBinder.h
===================================================================
--- code/branches/pch/src/core/input/KeyBinder.h	(revision 3147)
+++ code/branches/pch/src/core/input/KeyBinder.h	(revision 3148)
@@ -38,6 +38,7 @@
 #include "core/CorePrereqs.h"
 
+#include <cassert>
+#include <string>
 #include <vector>
-#include <cassert>
 
 #include "InputInterfaces.h"
Index: code/branches/pch/src/core/input/KeyDetector.cc
===================================================================
--- code/branches/pch/src/core/input/KeyDetector.cc	(revision 3147)
+++ code/branches/pch/src/core/input/KeyDetector.cc	(revision 3148)
@@ -34,9 +34,7 @@
 
 #include "KeyDetector.h"
+
 #include "util/Debug.h"
 #include "core/CoreIncludes.h"
-#include "core/CommandExecutor.h"
-#include "core/CommandEvaluation.h"
-#include "InputCommands.h"
 #include "Button.h"
 
Index: code/branches/pch/src/core/input/KeyDetector.h
===================================================================
--- code/branches/pch/src/core/input/KeyDetector.h	(revision 3147)
+++ code/branches/pch/src/core/input/KeyDetector.h	(revision 3148)
@@ -38,4 +38,5 @@
 #include "core/CorePrereqs.h"
 
+#include <string>
 #include "KeyBinder.h"
 
Index: code/branches/pch/src/core/input/SimpleInputState.cc
===================================================================
--- code/branches/pch/src/core/input/SimpleInputState.cc	(revision 3147)
+++ code/branches/pch/src/core/input/SimpleInputState.cc	(revision 3148)
@@ -34,4 +34,5 @@
 
 #include "SimpleInputState.h"
+#include "core/Executor.h"
 
 namespace orxonox
@@ -148,3 +149,15 @@
         bHandlersChanged_ = true;
     }
+
+    void SimpleInputState::onEnter()
+    {
+        if (executorOnEnter_)
+            (*executorOnEnter_)();
+    }
+
+    void SimpleInputState::onLeave()
+    {
+        if (executorOnLeave_)
+            (*executorOnLeave_)();
+    }
 }
Index: code/branches/pch/src/core/input/SimpleInputState.h
===================================================================
--- code/branches/pch/src/core/input/SimpleInputState.h	(revision 3147)
+++ code/branches/pch/src/core/input/SimpleInputState.h	(revision 3148)
@@ -79,4 +79,7 @@
         void update();
         void numberOfJoySticksChanged(unsigned int n);
+
+        void onEnter();
+        void onLeave();
 
         KeyHandler*                   keyHandler_;
