Index: code/branches/cpp11_v2/src/libraries/core/GUIManager.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/GUIManager.cc	(revision 10774)
+++ code/branches/cpp11_v2/src/libraries/core/GUIManager.cc	(revision 10775)
@@ -32,5 +32,5 @@
 #include <fstream>
 #include <memory>
-#include <boost/bind.hpp>
+#include <functional>
 #include <OgreRenderQueue.h>
 #include <OgreRenderWindow.h>
@@ -115,4 +115,6 @@
 namespace orxonox
 {
+    namespace arg = std::placeholders;
+
     static void key_esc()
         { GUIManager::getInstance().keyESC(); }
@@ -451,5 +453,5 @@
     {
         assert(guiSystem_);
-        this->protectedCeguiSystemCall(boost::bind(&CEGUI::System::injectTimePulse, _1, time.getDeltaTime()));
+        this->protectedCeguiSystemCall(std::bind(&CEGUI::System::injectTimePulse, arg::_1, time.getDeltaTime()));
     }
 
@@ -627,9 +629,9 @@
     {
 #if CEGUI_VERSION >= 0x000800
-        this->protectedCeguiContextCall(boost::bind(&CEGUI::GUIContext::injectKeyDown, _1, (CEGUI::Key::Scan) evt.getKeyCode())); // TODO: will this cast always work?
-        this->protectedCeguiContextCall(boost::bind(&CEGUI::GUIContext::injectChar, _1, evt.getText()));
-#else
-        this->protectedCeguiSystemCall(boost::bind(&CEGUI::System::injectKeyDown, _1, evt.getKeyCode()));
-        this->protectedCeguiSystemCall(boost::bind(&CEGUI::System::injectChar, _1, evt.getText()));
+        this->protectedCeguiContextCall(std::bind(&CEGUI::GUIContext::injectKeyDown, arg::_1, (CEGUI::Key::Scan) evt.getKeyCode())); // TODO: will this cast always work?
+        this->protectedCeguiContextCall(std::bind(&CEGUI::GUIContext::injectChar, arg::_1, evt.getText()));
+#else
+        this->protectedCeguiSystemCall(std::bind(&CEGUI::System::injectKeyDown, arg::_1, evt.getKeyCode()));
+        this->protectedCeguiSystemCall(std::bind(&CEGUI::System::injectChar, arg::_1, evt.getText()));
 #endif
     }
@@ -638,7 +640,7 @@
     {
 #if CEGUI_VERSION >= 0x000800
-        this->protectedCeguiContextCall(boost::bind(&CEGUI::GUIContext::injectKeyUp, _1, (CEGUI::Key::Scan) evt.getKeyCode())); // TODO: will this cast always work?
-#else
-        this->protectedCeguiSystemCall(boost::bind(&CEGUI::System::injectKeyUp, _1, evt.getKeyCode()));
+        this->protectedCeguiContextCall(std::bind(&CEGUI::GUIContext::injectKeyUp, arg::_1, (CEGUI::Key::Scan) evt.getKeyCode())); // TODO: will this cast always work?
+#else
+        this->protectedCeguiSystemCall(std::bind(&CEGUI::System::injectKeyUp, arg::_1, evt.getKeyCode()));
 #endif
     }
@@ -656,7 +658,7 @@
     {
 #if CEGUI_VERSION >= 0x000800
-        this->protectedCeguiContextCall(boost::bind(&CEGUI::GUIContext::injectMouseButtonDown, _1, convertButton(id)));
-#else
-        this->protectedCeguiSystemCall(boost::bind(&CEGUI::System::injectMouseButtonDown, _1, convertButton(id)));
+        this->protectedCeguiContextCall(std::bind(&CEGUI::GUIContext::injectMouseButtonDown, arg::_1, convertButton(id)));
+#else
+        this->protectedCeguiSystemCall(std::bind(&CEGUI::System::injectMouseButtonDown, arg::_1, convertButton(id)));
 #endif
     }
@@ -674,7 +676,7 @@
     {
 #if CEGUI_VERSION >= 0x000800
-        this->protectedCeguiContextCall(boost::bind(&CEGUI::GUIContext::injectMouseButtonUp, _1, convertButton(id)));
-#else
-        this->protectedCeguiSystemCall(boost::bind(&CEGUI::System::injectMouseButtonUp, _1, convertButton(id)));
+        this->protectedCeguiContextCall(std::bind(&CEGUI::GUIContext::injectMouseButtonUp, arg::_1, convertButton(id)));
+#else
+        this->protectedCeguiSystemCall(std::bind(&CEGUI::System::injectMouseButtonUp, arg::_1, convertButton(id)));
 #endif
     }
@@ -683,7 +685,7 @@
     {
 #if CEGUI_VERSION >= 0x000800
-        this->protectedCeguiContextCall(boost::bind(&CEGUI::GUIContext::injectMousePosition, _1, (float)abs.x, (float)abs.y));
-#else
-        this->protectedCeguiSystemCall(boost::bind(&CEGUI::System::injectMousePosition, _1, (float)abs.x, (float)abs.y));
+        this->protectedCeguiContextCall(std::bind(&CEGUI::GUIContext::injectMousePosition, arg::_1, (float)abs.x, (float)abs.y));
+#else
+        this->protectedCeguiSystemCall(std::bind(&CEGUI::System::injectMousePosition, arg::_1, (float)abs.x, (float)abs.y));
 #endif
     }
@@ -692,7 +694,7 @@
     {
 #if CEGUI_VERSION >= 0x000800
-        this->protectedCeguiContextCall(boost::bind(&CEGUI::GUIContext::injectMouseWheelChange, _1, (float)sgn(rel) * this->numScrollLines_));
-#else
-        this->protectedCeguiSystemCall(boost::bind(&CEGUI::System::injectMouseWheelChange, _1, (float)sgn(rel) * this->numScrollLines_));
+        this->protectedCeguiContextCall(std::bind(&CEGUI::GUIContext::injectMouseWheelChange, arg::_1, (float)sgn(rel) * this->numScrollLines_));
+#else
+        this->protectedCeguiSystemCall(std::bind(&CEGUI::System::injectMouseWheelChange, arg::_1, (float)sgn(rel) * this->numScrollLines_));
 #endif
     }
@@ -704,7 +706,7 @@
     {
 #if CEGUI_VERSION >= 0x000800
-        this->protectedCeguiContextCall(boost::bind(&CEGUI::GUIContext::injectMouseLeaves, _1));
-#else
-        this->protectedCeguiSystemCall(boost::bind(&CEGUI::System::injectMouseLeaves, _1));
+        this->protectedCeguiContextCall(std::bind(&CEGUI::GUIContext::injectMouseLeaves, arg::_1));
+#else
+        this->protectedCeguiSystemCall(std::bind(&CEGUI::System::injectMouseLeaves, arg::_1));
 #endif
     }
@@ -753,5 +755,5 @@
         terminate the whole program...
     @note
-        Your life gets easier if you use boost::bind to create the object/function.
+        Your life gets easier if you use std::bind to create the object/function.
     @param function
         Any callable object/function that takes this->guiSystem_ as its only parameter.
Index: code/branches/cpp11_v2/src/libraries/core/Thread.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/Thread.cc	(revision 10774)
+++ code/branches/cpp11_v2/src/libraries/core/Thread.cc	(revision 10775)
@@ -34,6 +34,6 @@
 
 #include <cassert>
+#include <functional>
 #include <boost/thread/thread.hpp>
-#include <boost/bind.hpp>
 #include <boost/thread/mutex.hpp>
 #include <boost/thread/thread_time.hpp>
@@ -55,5 +55,5 @@
         this->isWorkingMutex_ = new boost::mutex;
         this->stopThreadMutex_ = new boost::mutex;
-        this->workerThread_ = new boost::thread( boost::bind(&Thread::threadLoop, this) );
+        this->workerThread_ = new boost::thread( std::bind(&Thread::threadLoop, this) );
     }
 
Index: code/branches/cpp11_v2/src/libraries/core/ThreadWin.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/ThreadWin.cc	(revision 10774)
+++ code/branches/cpp11_v2/src/libraries/core/ThreadWin.cc	(revision 10775)
@@ -31,6 +31,6 @@
 
 #include <cassert>
+// #include <functional>
 // #include <boost/thread/thread.hpp>
-// #include <boost/bind.hpp>
 // #include <boost/thread/mutex.hpp>
 // #include <boost/thread/thread_time.hpp>
@@ -52,5 +52,5 @@
 //         this->isWorkingMutex_ = new boost::mutex;
 //         this->stopThreadMutex_ = new boost::mutex;
-//         this->workerThread_ = new boost::thread( boost::bind(&Thread::threadLoop, this) );
+//         this->workerThread_ = new boost::thread( std::bind(&Thread::threadLoop, this) );
     }
 
Index: code/branches/cpp11_v2/src/libraries/core/command/TclThreadManager.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/command/TclThreadManager.cc	(revision 10774)
+++ code/branches/cpp11_v2/src/libraries/core/command/TclThreadManager.cc	(revision 10775)
@@ -34,5 +34,5 @@
 #include "TclThreadManager.h"
 
-#include <boost/bind.hpp>
+#include <functional>
 #include <boost/thread/thread.hpp>
 #include <boost/thread/locks.hpp>
@@ -163,5 +163,5 @@
                                 {
                                     // Start a thread to execute the command
-                                    boost::thread(boost::bind(&tclThread, bundle, command));
+                                    boost::thread(std::bind(&tclThread, bundle, command));
                                 }
                                 else
@@ -488,5 +488,5 @@
     void TclThreadManager::source(const std::string& file)
     {
-        boost::thread(boost::bind(&sourceThread, file));
+        boost::thread(std::bind(&sourceThread, file));
     }
 
Index: code/branches/cpp11_v2/src/libraries/core/input/InputManager.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/InputManager.h	(revision 10774)
+++ code/branches/cpp11_v2/src/libraries/core/input/InputManager.h	(revision 10775)
@@ -35,5 +35,5 @@
 #include <string>
 #include <vector>
-#include <boost/function.hpp>
+#include <functional>
 
 #include "util/Singleton.h"
@@ -186,5 +186,5 @@
         // Function call caching
         //-------------------------------
-        void pushCall(const boost::function<void ()>& function)
+        void pushCall(const std::function<void ()>& function)
             { this->callBuffer_.push_back(function); }
 
@@ -225,5 +225,5 @@
         std::vector<InputState*>            activeStatesTicked_;   //!< Like activeStates_, but only contains the ones that currently receive events
 
-        std::vector<boost::function<void ()>> callBuffer_;        //!< Caches all calls from InputStates to be executed afterwards (see preUpdate)
+        std::vector<std::function<void ()>> callBuffer_;        //!< Caches all calls from InputStates to be executed afterwards (see preUpdate)
 
         static InputManager*                singletonPtr_s;        //!< Pointer reference to the singleton
Index: code/branches/cpp11_v2/src/libraries/core/input/InputState.h
===================================================================
--- code/branches/cpp11_v2/src/libraries/core/input/InputState.h	(revision 10774)
+++ code/branches/cpp11_v2/src/libraries/core/input/InputState.h	(revision 10775)
@@ -35,6 +35,5 @@
 #include <string>
 #include <vector>
-#include <boost/function.hpp>
-#include <boost/bind.hpp>
+#include <functional>
 
 #include "util/tribool.h"
@@ -44,5 +43,5 @@
 
 #define INPUT_STATE_PUSH_CALL(deviceIndex, functionName, ...) \
-    InputManager::getInstance().pushCall(boost::function<void ()>(boost::bind(&InputHandler::functionName, handlers_[deviceIndex], __VA_ARGS__)))
+    InputManager::getInstance().pushCall(std::function<void ()>(std::bind(&InputHandler::functionName, handlers_[deviceIndex], __VA_ARGS__)))
 
 namespace orxonox
@@ -212,5 +211,5 @@
             // We have to store the function pointer to tell the compiler about its actual type because of overloading
             void (InputHandler::*function)(unsigned int, ButtonTypeParam, EventType) = &InputHandler::buttonEvent<ButtonTypeParam>;
-            InputManager::getInstance().pushCall(boost::function<void ()>(boost::bind(function, handlers_[device], device, button, EventType())));
+            InputManager::getInstance().pushCall(std::function<void ()>(std::bind(function, handlers_[device], device, button, EventType())));
         }
     }
Index: code/branches/cpp11_v2/src/libraries/network/TrafficControl.cc
===================================================================
--- code/branches/cpp11_v2/src/libraries/network/TrafficControl.cc	(revision 10774)
+++ code/branches/cpp11_v2/src/libraries/network/TrafficControl.cc	(revision 10775)
@@ -30,5 +30,5 @@
 
 #include <cassert>
-#include <boost/bind.hpp>
+#include <functional>
 
 #include "core/CoreIncludes.h"
@@ -39,4 +39,5 @@
 
   static const unsigned int SCHED_PRIORITY_OFFSET = static_cast<unsigned int>(-1);
+  namespace arg = std::placeholders;
 
   objInfo::objInfo(uint32_t ID, uint32_t creatorID, int32_t curGsID, int32_t diffGsID, uint32_t size, unsigned int prioperm, unsigned int priosched)
@@ -258,9 +259,9 @@
 
       //sort copied list according to priorities
-      // use boost bind here because we need to pass a memberfunction to stl sort
-//       sort( list.begin(), list.end(), boost::bind(&TrafficControl::prioritySort, this, clientID, _1, _2) );
-      list.sort( boost::bind(&TrafficControl::prioritySort, this, clientID, _1, _2) );
-
-//       list.sort(boost::bind(&TrafficControl::prioritySort, this, clientID, _1, _2) );
+      // use std::bind here because we need to pass a memberfunction to stl sort
+//       sort( list.begin(), list.end(), std::bind(&TrafficControl::prioritySort, this, clientID, arg::_1, arg::_2) );
+      list.sort( std::bind(&TrafficControl::prioritySort, this, clientID, arg::_1, arg::_2) );
+
+//       list.sort(std::bind(&TrafficControl::prioritySort, this, clientID, arg::_1, arg::_2) );
 
       //now we check, that the creator of an object always exists on a client
@@ -275,6 +276,6 @@
       cut(list, targetSize);
       //now sort again after objDataOffset
-//       sort(list.begin(), list.end(), boost::bind(&TrafficControl::dataSort, this, _1, _2) );
-      list.sort( boost::bind(&TrafficControl::dataSort, this, _1, _2) );
+//       sort(list.begin(), list.end(), std::bind(&TrafficControl::dataSort, this, arg::_1, arg::_2) );
+      list.sort( std::bind(&TrafficControl::dataSort, this, arg::_1, arg::_2) );
 
       //diese Funktion updateClientList muss noch gemacht werden
