Index: code/branches/consolecommands3/src/libraries/core/CorePrereqs.h
===================================================================
--- code/branches/consolecommands3/src/libraries/core/CorePrereqs.h	(revision 7198)
+++ code/branches/consolecommands3/src/libraries/core/CorePrereqs.h	(revision 7199)
@@ -164,4 +164,5 @@
     class Iterator;
     class Language;
+    class LuaFunctor;
     class LuaState;
     class MemoryArchive;
Index: code/branches/consolecommands3/src/libraries/core/LuaState.cc
===================================================================
--- code/branches/consolecommands3/src/libraries/core/LuaState.cc	(revision 7198)
+++ code/branches/consolecommands3/src/libraries/core/LuaState.cc	(revision 7199)
@@ -370,8 +370,7 @@
     }
 
-    MultiType LuaFunctor::operator()(const MultiType& param1, const MultiType& param2, const MultiType& param3, const MultiType& param4, const MultiType& param5)
+    void LuaFunctor::operator()()
     {
         lua_->doString(this->code_);
-        return MT_Type::Null;
     }
 }
Index: code/branches/consolecommands3/src/libraries/core/LuaState.h
===================================================================
--- code/branches/consolecommands3/src/libraries/core/LuaState.h	(revision 7198)
+++ code/branches/consolecommands3/src/libraries/core/LuaState.h	(revision 7199)
@@ -40,26 +40,16 @@
 
 #include "util/ScopeGuard.h"
-#include "Functor.h"
 #include "ToluaInterface.h"
 
 namespace orxonox // tolua_export
 { // tolua_export
-    class Functor; // tolua_export
+    class LuaFunctor; // tolua_export
 
-    //! Functor subclass that simply executes code with 0 arguments.
-    class _CoreExport LuaFunctor : public Functor
+    //! callback class that executes lua code
+    class _CoreExport LuaFunctor
     {
         public:
             LuaFunctor(const std::string& code, LuaState* luaState);
-            MultiType operator()(const MultiType& param1 = MT_Type::Null, const MultiType& param2 = MT_Type::Null, const MultiType& param3 = MT_Type::Null, const MultiType& param4 = MT_Type::Null, const MultiType& param5 = MT_Type::Null);
-            void evaluateParam(unsigned int index, MultiType& param) const {}
-
-            Functor::Type::Enum getType() const { return Functor::Type::Lua; } \
-            unsigned int getParamCount() const { return 0; }
-            bool hasReturnvalue() const { return 0; }
-            std::string getTypenameParam(unsigned int param) const { return BLANKSTRING; }
-            std::string getTypenameReturnvalue() const { return BLANKSTRING; }
-
-            const std::type_info& getHeaderIdentifier() const { return typeid(this); }
+            void operator()();
 
         private:
@@ -99,5 +89,5 @@
         const shared_ptr<ResourceInfo>& getDefaultResourceInfo() { return this->sourceFileInfo_; }
 
-        Functor* createLuaFunctor(const std::string& code) { return new LuaFunctor(code, this); } // tolua_export
+        LuaFunctor* createLuaFunctor(const std::string& code) { return new LuaFunctor(code, this); } // tolua_export
         //! Tells about whether IOConsole was activated. The Lua debugger only works with a normal console.
         bool usingIOConsole() const; // tolua_export
Index: code/branches/consolecommands3/src/libraries/core/input/KeyBinderManager.cc
===================================================================
--- code/branches/consolecommands3/src/libraries/core/input/KeyBinderManager.cc	(revision 7198)
+++ code/branches/consolecommands3/src/libraries/core/input/KeyBinderManager.cc	(revision 7199)
@@ -34,4 +34,5 @@
 #include "core/ConsoleCommand.h"
 #include "core/CoreIncludes.h"
+#include "core/LuaState.h"
 #include "core/ScopedSingletonManager.h"
 #include "InputManager.h"
@@ -187,3 +188,8 @@
         // else: A key was probably pressed within the same tick, ignore it.
     }
+
+    void KeyBinderManager::registerKeybindCallback(LuaFunctor* function)
+    {
+        this->callbackFunction_ = function;
+    }
 }
Index: code/branches/consolecommands3/src/libraries/core/input/KeyBinderManager.h
===================================================================
--- code/branches/consolecommands3/src/libraries/core/input/KeyBinderManager.h	(revision 7198)
+++ code/branches/consolecommands3/src/libraries/core/input/KeyBinderManager.h	(revision 7199)
@@ -99,5 +99,5 @@
         void unbind(const std::string& binding); //tolua_export
         void tunbind(const std::string& binding);
-        inline void registerKeybindCallback(const FunctorPtr& function) { this->callbackFunction_ = function; } // tolua//_//export // <-- FIXME
+        void registerKeybindCallback(LuaFunctor* function); //tolua_export
 
     private:
@@ -114,5 +114,5 @@
 
         // keybind command related
-        FunctorPtr callbackFunction_;                //! Function to be called when key was pressed after "keybind" command
+        SharedPtr<LuaFunctor> callbackFunction_;     //! Function to be called when key was pressed after "keybind" command
         bool bBinding_;                              //! Tells whether a key binding process is active
         bool bTemporary_;                            //! Stores tkeybind/keybind value
