Index: code/branches/input/src/core/CMakeLists.txt
===================================================================
--- code/branches/input/src/core/CMakeLists.txt	(revision 1193)
+++ code/branches/input/src/core/CMakeLists.txt	(revision 1195)
@@ -50,6 +50,6 @@
 TARGET_LINK_LIBRARIES(core
   ${Lua_LIBRARIES}
-  ${OIS_LIBRARIES}
   ${OGRE_LIBRARIES}
+  ois
   util
 )
Index: code/branches/input/src/core/InputBuffer.h
===================================================================
--- code/branches/input/src/core/InputBuffer.h	(revision 1193)
+++ code/branches/input/src/core/InputBuffer.h	(revision 1195)
@@ -35,5 +35,5 @@
 #include <list>
 
-#include <OIS/OISKeyboard.h>
+#include "ois/OISKeyboard.h"
 
 namespace orxonox
Index: code/branches/input/src/core/InputManager.cc
===================================================================
--- code/branches/input/src/core/InputManager.cc	(revision 1193)
+++ code/branches/input/src/core/InputManager.cc	(revision 1195)
@@ -155,9 +155,5 @@
     try
     {
-#if (OIS_VERSION >> 8) == 0x0100
-    if (inputSystem_->numKeyboards() > 0)
-#elif (OIS_VERSION >> 8) == 0x0102
-    if (inputSystem_->getNumberOfDevices(OIS::OISKeyboard) > 0)
-#endif
+      if (inputSystem_->getNumberOfDevices(OIS::OISKeyboard) > 0)
       {
         keyboard_ = (OIS::Keyboard*)inputSystem_->createInputObject(OIS::OISKeyboard, true);
@@ -185,9 +181,5 @@
     try
     {
-#if (OIS_VERSION >> 8) == 0x0100
-    if (inputSystem_->numMice() > 0)
-#elif (OIS_VERSION >> 8) == 0x0102
-    if (inputSystem_->getNumberOfDevices(OIS::OISMouse) > 0)
-#endif
+      if (inputSystem_->getNumberOfDevices(OIS::OISMouse) > 0)
       {
         mouse_ = static_cast<OIS::Mouse*>(inputSystem_->createInputObject(OIS::OISMouse, true));
@@ -212,13 +204,7 @@
   void InputManager::_initialiseJoySticks()
   {
-#if (OIS_VERSION >> 8) == 0x0100
-    if (inputSystem_->numJoySticks() > 0)
-    {
-      _setNumberOfJoysticks(inputSystem_->numJoySticks());
-#elif (OIS_VERSION >> 8) == 0x0102
     if (inputSystem_->getNumberOfDevices(OIS::OISJoyStick) > 0)
     {
       _setNumberOfJoysticks(inputSystem_->getNumberOfDevices(OIS::OISJoyStick));
-#endif
       for (std::vector<OIS::JoyStick*>::iterator it = joySticks_.begin(); it != joySticks_.end(); it++)
       {
@@ -371,9 +357,9 @@
 
   // ###############################
-  // ###  Public Member Methods  ###
+  // ###    Interface Methods    ###
   // ###############################
 
   /**
-    @brief Updates the InputManager
+    @brief Updates the InputManager. Tick is called by Orxonox.
     @param dt Delta time
   */
@@ -394,5 +380,6 @@
         this->bKeyBindingsActive_            = true;
         this->bMouseButtonBindingsActive_    = true;
-        //this->bJoySticksButtonBindingsActive_ = true;
+        for (unsigned int i = 0; i < joySticks_.size(); i++)
+          this->bJoyStickButtonBindingsActive_[i] = true;
         break;
 
@@ -404,8 +391,9 @@
         this->listenersKeyActive_.clear();
         this->listenersMouseActive_.clear();
-        //this->listenersJoyStickActive_.clear();
+        this->listenersJoySticksActive_.clear();
         this->bKeyBindingsActive_            = false;
         this->bMouseButtonBindingsActive_    = true;
-        //this->bJoyStickButtonBindingsActive_ = true;
+        for (unsigned int i = 0; i < joySticks_.size(); i++)
+          this->bJoyStickButtonBindingsActive_[i] = true;
         if (listenersKey_.find("buffer") != listenersKey_.end())
           listenersKeyActive_.push_back(listenersKey_["buffer"]);
@@ -421,12 +409,17 @@
         this->listenersKeyActive_.clear();
         this->listenersMouseActive_.clear();
-        //this->listenersJoyStickActive_.clear();
+        this->listenersJoySticksActive_.clear();
         this->bKeyBindingsActive_            = false;
         this->bMouseButtonBindingsActive_    = false;
-        //this->bJoyStickButtonBindingsActive_ = false;
+        for (unsigned int i = 0; i < joySticks_.size(); i++)
+          this->bJoyStickButtonBindingsActive_[i] = false;
         break;
 
       case IS_CUSTOM:
         // don't do anything
+        break;
+
+      case IS_UNINIT:
+        // this can't happen
         break;
       }
@@ -619,4 +612,16 @@
   }
 
+  /*bool InputManager::initialiseKeyboard()
+  {
+  }
+
+  bool InputManager::initialiseMouse()
+  {
+  }
+
+  bool InputManager::initialiseJoySticks()
+  {
+  }*/
+
   bool InputManager::addKeyListener(OIS::KeyListener *listener, const std::string& name)
   {
Index: code/branches/input/src/core/InputManager.h
===================================================================
--- code/branches/input/src/core/InputManager.h	(revision 1193)
+++ code/branches/input/src/core/InputManager.h	(revision 1195)
@@ -40,6 +40,6 @@
 #include <map>
 #include <list>
-#include <OIS/OIS.h>
-
+
+#include "ois/OIS.h"
 #include "Tickable.h"
 #include "InputEvent.h"
