Index: trunk/FACT++/src/Configuration.cc
===================================================================
--- trunk/FACT++/src/Configuration.cc	(revision 11480)
+++ trunk/FACT++/src/Configuration.cc	(revision 11481)
@@ -332,5 +332,4 @@
 #include <iomanip>
 
-#include <boost/bind.hpp>
 #include <boost/regex.hpp>
 #include <boost/filesystem.hpp>
@@ -512,5 +511,5 @@
 Configuration::Configuration(const string &prgname) : fName(UnLibToolize(prgname)),
 fNameMapper(bind1st(mem_fun(&Configuration::DefaultMapper), this)),
-fPrintUsage(boost::bind(&Configuration::PrintUsage, this))
+fPrintUsage(bind(&Configuration::PrintUsage, this))
 {
     po::options_description generic("Generic options");
@@ -877,5 +876,5 @@
 //!
 //
-void Configuration::SetNameMapper(const boost::function<string(string)> &func)
+void Configuration::SetNameMapper(const function<string(string)> &func)
 {
     fNameMapper = func;
@@ -887,5 +886,5 @@
 }
 
-void Configuration::SetPrintUsage(const boost::function<void(void)> &func)
+void Configuration::SetPrintUsage(const function<void(void)> &func)
 {
     fPrintUsage = func;
@@ -894,8 +893,8 @@
 void Configuration::SetPrintUsage()
 {
-    fPrintUsage = boost::bind(&Configuration::PrintUsage, this);
-}
-
-void Configuration::SetPrintVersion(const boost::function<void(const string&)> &func)
+    fPrintUsage = bind(&Configuration::PrintUsage, this);
+}
+
+void Configuration::SetPrintVersion(const function<void(const string&)> &func)
 {
     fPrintVersion = func;
@@ -904,5 +903,5 @@
 void Configuration::SetPrintVersion()
 {
-    fPrintVersion = boost::function<void(const string&)>();
+    fPrintVersion = function<void(const string&)>();
 }
 
@@ -1310,5 +1309,5 @@
 #endif
 
-    if (!fPrintVersion.empty())
+    if (fPrintVersion)
     {
         fPrintVersion(fName);
Index: trunk/FACT++/src/Configuration.h
===================================================================
--- trunk/FACT++/src/Configuration.h	(revision 11480)
+++ trunk/FACT++/src/Configuration.h	(revision 11481)
@@ -46,7 +46,7 @@
 
     /// Pointer to the mapper function for environment variables
-    boost::function<std::string(std::string)> fNameMapper;
-    boost::function<void()>                   fPrintUsage;
-    boost::function<void(const std::string&)> fPrintVersion;
+    std::function<std::string(std::string)> fNameMapper;
+    std::function<void()>                   fPrintUsage;
+    std::function<void(const std::string&)> fPrintVersion;
 
     /// Helper function which return the max of the two arguments in the first argument
@@ -95,11 +95,11 @@
     void SetArgumentPositions(const po::positional_options_description &desc);
 
-    void SetNameMapper(const boost::function<std::string(std::string)> &func);
+    void SetNameMapper(const std::function<std::string(std::string)> &func);
     void SetNameMapper();
 
-    void SetPrintUsage(const boost::function<void(void)> &func);
+    void SetPrintUsage(const std::function<void(void)> &func);
     void SetPrintUsage();
 
-    void SetPrintVersion(const boost::function<void(const std::string &)> &func);
+    void SetPrintVersion(const std::function<void(const std::string &)> &func);
     void SetPrintVersion();
 
Index: trunk/FACT++/src/EventImp.h
===================================================================
--- trunk/FACT++/src/EventImp.h	(revision 11480)
+++ trunk/FACT++/src/EventImp.h	(revision 11481)
@@ -5,6 +5,5 @@
 #include <vector>
 
-#include <boost/function.hpp>
-//#include <boost/bind/arg.hpp>
+#include <functional>
 
 #include "Time.h"
@@ -16,5 +15,5 @@
 
     /// http://www.boost.org/doc/libs/1_45_0/libs/bind/bind.html
-    boost::function<int(const EventImp &)> fFunction;
+    std::function<int(const EventImp &)> fFunction;
 
 public:
@@ -31,6 +30,6 @@
     // Function handling
     EventImp &AssignFunction(const boost::function<int(const EventImp &)> &func) { fFunction = func; return *this; }
-    bool HasFunc() const { return !fFunction.empty(); }
-    int ExecFunc() const { return HasFunc() ? fFunction(*this) : -1; }
+    bool HasFunc() const { return fFunction; }
+    int ExecFunc() const { return fFunction ? fFunction(*this) : -1; }
 
     // Configuration helper
Index: trunk/FACT++/src/Main.h
===================================================================
--- trunk/FACT++/src/Main.h	(revision 11480)
+++ trunk/FACT++/src/Main.h	(revision 11481)
@@ -3,5 +3,5 @@
 
 #include <thread>
-#include <boost/bind.hpp>
+#include <functional>
 
 #include "LocalControl.h"
@@ -83,5 +83,5 @@
 
 //    boost::thread t(boost::bind(&AutoScheduler<S>::Run, &io_service));
-    thread t(boost::bind(MainThread, &io_service, dummy));
+    thread t(bind(MainThread, &io_service, dummy));
 
     const vector<string> v1 = conf.Vec<string>("cmd");
Index: trunk/FACT++/src/biasctrl.cc
===================================================================
--- trunk/FACT++/src/biasctrl.cc	(revision 11480)
+++ trunk/FACT++/src/biasctrl.cc	(revision 11481)
@@ -1,3 +1,3 @@
-#include <boost/bind.hpp>
+#include <functional>
 
 #include "Dim.h"
@@ -18,4 +18,5 @@
 namespace dummy = ba::placeholders;
 
+using namespace std::placeholders;
 using namespace std;
 
@@ -416,7 +417,7 @@
     }
 
-    boost::function<int(const EventImp &)> Wrapper(boost::function<void()> func)
-    {
-        return boost::bind(&StateMachineBias::Wrap, this, func);
+    function<int(const EventImp &)> Wrapper(function<void()> func)
+    {
+        return bind(&StateMachineBias::Wrap, this, func);
     }
 
@@ -516,5 +517,5 @@
         // Verbosity commands
         T::AddEvent("SET_VERBOSE", "B")
-            (boost::bind(&StateMachineBias::SetVerbosity, this, _1))
+            (bind(&StateMachineBias::SetVerbosity, this, _1))
             ("set verbosity state"
              "|verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data");
@@ -522,9 +523,9 @@
         // Conenction commands
         AddEvent("DISCONNECT", kStateConnected)
-            (boost::bind(&StateMachineBias::Disconnect, this))
+            (bind(&StateMachineBias::Disconnect, this))
             ("disconnect from ethernet");
 
         AddEvent("RECONNECT", "O", kStateDisconnected, kStateConnected)
-            (boost::bind(&StateMachineBias::Reconnect, this, _1))
+            (bind(&StateMachineBias::Reconnect, this, _1))
             ("(Re)connect ethernet connection to FTM, a new address can be given"
              "|[host][string]:new ethernet address in the form <host:port>");
@@ -605,6 +606,6 @@
     shell.SetReceiver(io_service);
 
-    boost::thread t(boost::bind(RunThread, &io_service));
-    // boost::thread t(boost::bind(&StateMachineBias<S>::Run, &io_service));
+    boost::thread t(bind(RunThread, &io_service));
+    // boost::thread t(bind(&StateMachineBias<S>::Run, &io_service));
 
     if (conf.Has("cmd"))
Index: trunk/FACT++/src/chatserv.cc
===================================================================
--- trunk/FACT++/src/chatserv.cc	(revision 11480)
+++ trunk/FACT++/src/chatserv.cc	(revision 11481)
@@ -1,5 +1,3 @@
 #include <iostream>
-
-#include <boost/bind.hpp>
 
 #include "Dim.h"
@@ -68,5 +66,5 @@
     {
         AddEvent("MSG", "C")
-            (boost::bind(&ChatServer::HandleMsg, this, _1))
+            (bind(&ChatServer::HandleMsg, this, placeholders::_1))
             ("|msg[string]:message to be distributed");
     }
Index: trunk/FACT++/src/datalogger.cc
===================================================================
--- trunk/FACT++/src/datalogger.cc	(revision 11480)
+++ trunk/FACT++/src/datalogger.cc	(revision 11481)
@@ -45,6 +45,6 @@
 //#include <sys/stat.h>    //for getting files sizes
 #include <fstream>
-
-#include <boost/bind.hpp>
+#include <functional>
+
 #include <boost/filesystem.hpp>
 
@@ -389,5 +389,5 @@
     }
     else if (shouldBackLog)
-         {
+    {
              ostringstream str;
              MessageImp mimp(str);
@@ -580,6 +580,8 @@
 bool DataLogger::OpenTextFilePlease(ofstream& stream, const string& name)
 {
+    if (stream.is_open())
+        return true;
+
     errno = 0;
-    if (!stream.is_open())
     stream.open(name.c_str(), ios_base::out | ios_base::app);
     if (!stream.is_open())
@@ -806,49 +808,49 @@
     // Add the possible transitions for this machine
     AddEvent(kSM_NightlyOpen, "START", kSM_Ready, kSM_BadNightlyConfig)
-        (boost::bind(&DataLogger::StartPlease, this))
+        (bind(&DataLogger::StartPlease, this))
         ("Start the nightly logging. Nightly file location must be specified already");
 
     AddEvent(kSM_Ready, "STOP", kSM_NightlyOpen, kSM_WaitingRun, kSM_Logging, kSM_DailyWriteError, kSM_RunWriteError)
-        (boost::bind(&DataLogger::GoToReadyPlease, this))
+        (bind(&DataLogger::GoToReadyPlease, this))
         ("Stop all data logging, close all files.");
 
     AddEvent(kSM_Logging, "START_RUN", kSM_WaitingRun, kSM_BadRunConfig)
-        (boost::bind(&DataLogger::StartRunPlease, this))
+        (bind(&DataLogger::StartRunPlease, this))
         ("Start the run logging. Run file location must be specified already.");
 
     AddEvent(kSM_WaitingRun, "STOP_RUN", kSM_Logging)
-        (boost::bind(&DataLogger::StopRunPlease, this))
+        (bind(&DataLogger::StopRunPlease, this))
         ("Wait for a run to be started, open run-files as soon as a run number arrives.");
 
     AddEvent(kSM_Ready, "RESET", kSM_Error, kSM_BadNightlyConfig, kSM_BadRunConfig, kSM_DailyWriteError, kSM_RunWriteError)
-        (boost::bind(&DataLogger::GoToReadyPlease, this))
+        (bind(&DataLogger::GoToReadyPlease, this))
         ("Transition to exit error states. Closes the any open file.");
 
     AddEvent(kSM_WaitingRun, "WAIT_FOR_RUN_NUMBER", kSM_NightlyOpen, kSM_Ready)
-        (boost::bind(&DataLogger::NightlyToWaitRunPlease, this))
+        (bind(&DataLogger::NightlyToWaitRunPlease, this))
         ("Go to waiting for run number state. In this state with any received run-number a new file is opened.");
 
     AddEvent(kSM_NightlyOpen, "BACK_TO_NIGHTLY_OPEN", kSM_WaitingRun)
-    (boost::bind(&DataLogger::BackToNightlyOpenPlease, this))
+    (bind(&DataLogger::BackToNightlyOpenPlease, this))
     ("Go from the wait for run to nightly open state.");
 
     // Add the possible configurations for this machine
     AddEvent("SET_NIGHTLY_FOLDER", "C", kSM_Ready, kSM_BadNightlyConfig)
-        (boost::bind(&DataLogger::ConfigureNightlyFileName, this, _1))
+        (bind(&DataLogger::ConfigureNightlyFileName, this, placeholders::_1))
         ("Configure the base folder for the nightly files."
          "|Path[string]:Absolute or relative path name where the nightly files should be stored.");
 
     AddEvent("SET_RUN_FOLDER", "C", kSM_Ready, kSM_BadNightlyConfig, kSM_NightlyOpen, kSM_WaitingRun, kSM_BadRunConfig)
-        (boost::bind(&DataLogger::ConfigureRunFileName, this, _1))
+        (bind(&DataLogger::ConfigureRunFileName, this, placeholders::_1))
         ("Configure the base folder for the run files."
          "|Path[string]:Absolute or relative path name where the run files should be stored.");
 
     AddEvent("SET_RUN_NUMBER", "X", kSM_Ready, kSM_NightlyOpen, kSM_WaitingRun, kSM_BadRunConfig, kSM_Logging)
-        (boost::bind(&DataLogger::ConfigureRunNumber, this, _1))
+        (bind(&DataLogger::ConfigureRunNumber, this, placeholders::_1))
         ("Configure the run number. Cannot be done in logging state");
 
      // Provide a print command
      AddEvent("PRINT")
-            (boost::bind(&DataLogger::PrintStatePlease, this, _1))
+            (bind(&DataLogger::PrintStatePlease, this, placeholders::_1))
             ("Print information about the internal status of the data logger.");
 
@@ -881,25 +883,25 @@
      // provide services control commands
      AddEvent("SET_DEBUG_MODE", "B:1", kSM_NightlyOpen, kSM_Logging, kSM_WaitingRun, kSM_Ready)
-         (boost::bind(&DataLogger::SetDebugOnOff, this, _1))
+         (bind(&DataLogger::SetDebugOnOff, this, placeholders::_1))
          ("Switch debug mode on or off. Debug mode prints information about every service written to a file."
           "|Enable[bool]:Enable of disable debug mode (yes/no).");
 
      AddEvent("SET_STATISTICS_UPDATE_INTERVAL", "S:1", kSM_NightlyOpen, kSM_Logging, kSM_WaitingRun, kSM_Ready)
-         (boost::bind(&DataLogger::SetStatsPeriod, this, _1))
+         (bind(&DataLogger::SetStatsPeriod, this, placeholders::_1))
          ("Interval in which the data-logger statistics service (STATS) is updated."
           "|Interval[ms]:Value in milliseconds (<=0: no update).");
 
      AddEvent("ENABLE_FILENAME_SERVICES", "B:1", kSM_NightlyOpen, kSM_Logging, kSM_WaitingRun, kSM_Ready)
-         (boost::bind(&DataLogger::SetOpenedFilesOnOff ,this, _1))
+         (bind(&DataLogger::SetOpenedFilesOnOff ,this, placeholders::_1))
          ("Switch service which distributes information about the open files on or off."
           "|Enable[bool]:Enable of disable filename services (yes/no).");
 
      AddEvent("ENABLE_NUMSUBS_SERVICE", "B:1", kSM_NightlyOpen, kSM_Logging, kSM_WaitingRun, kSM_Ready)
-         (boost::bind(&DataLogger::SetNumSubsAndFitsOnOff, this, _1))
+         (bind(&DataLogger::SetNumSubsAndFitsOnOff, this, placeholders::_1))
          ("Switch the service which distributes information about the number of subscriptions and open files on or off."
           "|Enable[bool]:Enable of disable NUM_SUBS service (yes/no).");
 
      AddEvent("SET_RUN_TIMEOUT", "L:1", kSM_Ready, kSM_NightlyOpen, kSM_Logging, kSM_WaitingRun)
-         (boost::bind(&DataLogger::SetRunTimeoutDelay, this, _1))
+         (bind(&DataLogger::SetRunTimeoutDelay, this, placeholders::_1))
          ("Set the timeout delay for old run numbers."
           "|timeout[min]:Time out in minutes after which files for expired runs are closed.");
@@ -2384,6 +2386,8 @@
          {
              NotifyOpenedFile(fFullNightlyLogFileName, 1, fOpenedNightlyFiles);
-            for (vector<string>::iterator it=backLogBuffer.begin();it!=backLogBuffer.end();it++)
-                fNightlyLogFile << *it << endl;
+             for (vector<string>::iterator it=backLogBuffer.begin();it!=backLogBuffer.end();it++)
+             {
+                 fNightlyLogFile << *it;
+             }
          }
     }
Index: trunk/FACT++/src/drivectrl.cc
===================================================================
--- trunk/FACT++/src/drivectrl.cc	(revision 11480)
+++ trunk/FACT++/src/drivectrl.cc	(revision 11481)
@@ -1,4 +1,2 @@
-#include <boost/bind.hpp>
-
 #include "FACT.h"
 #include "Dim.h"
@@ -412,5 +410,5 @@
     {
         boost::asio::async_read_until(*this, fBuffer, '\n',
-                                      boost::bind(&ConnectionDrive::HandleReceivedReport, this,
+                                      bind(&ConnectionDrive::HandleReceivedReport, this,
                                                   dummy::error, dummy::bytes_transferred));
     }
@@ -423,5 +421,5 @@
 
         fKeepAlive.expires_from_now(boost::posix_time::seconds(10));
-        fKeepAlive.async_wait(boost::bind(&ConnectionDrive::HandleKeepAlive,
+        fKeepAlive.async_wait(bind(&ConnectionDrive::HandleKeepAlive,
                                           this, dummy::error));
     }
@@ -576,5 +574,5 @@
     boost::function<int(const EventImp &)> Wrapper(boost::function<void()> func)
     {
-        return boost::bind(&StateMachineDrive::Wrap, this, func);
+        return bind(&StateMachineDrive::Wrap, this, func);
     }
 
@@ -772,5 +770,5 @@
         // Drive Commands
         T::AddEvent("MOVE_TO", "D:2", kStateArmed)  // ->ZDAZ
-            (boost::bind(&StateMachineDrive::SendCoordinates, this, _1, kPoint))
+            (bind(&StateMachineDrive::SendCoordinates, this, placeholders::_1, kPoint))
             (""
              "|zd[deg]:"
@@ -778,5 +776,5 @@
 
         T::AddEvent("TRACK", "D:2", kStateArmed)   // ->RADEC/GRB
-            (boost::bind(&StateMachineDrive::SendCoordinates, this, _1, kTrackSlow))
+            (bind(&StateMachineDrive::SendCoordinates, this, placeholders::_1, kTrackSlow))
             (""
              "|ra[h]:"
@@ -784,29 +782,29 @@
 
         T::AddEvent("MOON", kStateArmed)
-            (boost::bind(&StateMachineDrive::SendCommand, this, "MOON 0 0"))
+            (bind(&StateMachineDrive::SendCommand, this, "MOON 0 0"))
             ("");
         T::AddEvent("VENUS", kStateArmed)
-            (boost::bind(&StateMachineDrive::SendCommand, this, "CELEST 2 0 0"))
+            (bind(&StateMachineDrive::SendCommand, this, "CELEST 2 0 0"))
             ("");
         T::AddEvent("MARS", kStateArmed)
-            (boost::bind(&StateMachineDrive::SendCommand, this, "CELEST 4 0 0"))
+            (bind(&StateMachineDrive::SendCommand, this, "CELEST 4 0 0"))
             ("");
         T::AddEvent("JUPITER", kStateArmed)
-            (boost::bind(&StateMachineDrive::SendCommand, this, "CELEST 5 0 0"))
+            (bind(&StateMachineDrive::SendCommand, this, "CELEST 5 0 0"))
             ("");
         T::AddEvent("SATURN", kStateArmed)
-            (boost::bind(&StateMachineDrive::SendCommand, this, "CELEST 6 0 0"))
+            (bind(&StateMachineDrive::SendCommand, this, "CELEST 6 0 0"))
             ("");
 
         T::AddEvent("TPOINT")
-            (boost::bind(&StateMachineDrive::SendCommand, this, "TPOIN FACT 0"))
+            (bind(&StateMachineDrive::SendCommand, this, "TPOIN FACT 0"))
             ("");
 
         T::AddEvent("STOP")
-            (boost::bind(&StateMachineDrive::SendCommand, this, "STOP!"))
+            (bind(&StateMachineDrive::SendCommand, this, "STOP!"))
             ("");
 
         T::AddEvent("ARM", kStateConnected)
-            (boost::bind(&StateMachineDrive::SendCommand, this, "ARM lock"))
+            (bind(&StateMachineDrive::SendCommand, this, "ARM lock"))
             ("");
 
@@ -814,5 +812,5 @@
         // Verbosity commands
         T::AddEvent("SET_VERBOSE", "B")
-            (boost::bind(&StateMachineDrive::SetVerbosity, this, _1))
+            (bind(&StateMachineDrive::SetVerbosity, this, placeholders::_1))
             ("set verbosity state"
              "|verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data");
@@ -820,9 +818,9 @@
         // Conenction commands
         AddEvent("DISCONNECT", kStateConnected, kStateArmed)
-            (boost::bind(&StateMachineDrive::Disconnect, this))
+            (bind(&StateMachineDrive::Disconnect, this))
             ("disconnect from ethernet");
 
         AddEvent("RECONNECT", "O", kStateDisconnected, kStateConnected, kStateArmed)
-            (boost::bind(&StateMachineDrive::Reconnect, this, _1))
+            (bind(&StateMachineDrive::Reconnect, this, placeholders::_1))
             ("(Re)connect ethernet connection to FTM, a new address can be given"
              "|[host][string]:new ethernet address in the form <host:port>");
@@ -903,6 +901,6 @@
     shell.SetReceiver(io_service);
 
-    boost::thread t(boost::bind(RunThread, &io_service));
-    // boost::thread t(boost::bind(&StateMachineDrive<S>::Run, &io_service));
+    boost::thread t(bind(RunThread, &io_service));
+    // boost::thread t(bind(&StateMachineDrive<S>::Run, &io_service));
 
     if (conf.Has("cmd"))
Index: trunk/FACT++/src/fadctrl.cc
===================================================================
--- trunk/FACT++/src/fadctrl.cc	(revision 11480)
+++ trunk/FACT++/src/fadctrl.cc	(revision 11481)
@@ -1,2 +1,4 @@
+#include <functional>
+
 #include "Dim.h"
 #include "Event.h"
@@ -1528,9 +1530,9 @@
         // FAD Commands
         T::AddEvent("SEND_CMD", "I:1")
-            (boost::bind(&StateMachineFAD::SendCmd, this, _1))
+            (bind(&StateMachineFAD::SendCmd, this, placeholders::_1))
             ("Send a command to the FADs. Values between 0 and 0xffff are allowed."
              "|command[uint16]:Command to be transmittted.");
         T::AddEvent("SEND_DATA", "I:2")
-            (boost::bind(&StateMachineFAD::SendCmdData, this, _1))
+            (bind(&StateMachineFAD::SendCmdData, this, placeholders::_1))
             ("Send a command with data to the FADs. Values between 0 and 0xffff are allowed."
              "|command[uint16]:Command to be transmittted."
@@ -1538,62 +1540,62 @@
 
         T::AddEvent("ENABLE_SRCLK", "B:1")
-            (boost::bind(&StateMachineFAD::CmdEnable, this, _1, FAD::kCmdSrclk))
+            (bind(&StateMachineFAD::CmdEnable, this, placeholders::_1, FAD::kCmdSrclk))
             ("Set SRCLK");
         T::AddEvent("ENABLE_BUSY", "B:1")
-            (boost::bind(&StateMachineFAD::CmdEnable, this, _1, FAD::kCmdBusy))
+            (bind(&StateMachineFAD::CmdEnable, this, placeholders::_1, FAD::kCmdBusy))
             ("Set BUSY");
         T::AddEvent("ENABLE_SCLK", "B:1")
-            (boost::bind(&StateMachineFAD::CmdEnable, this, _1, FAD::kCmdSclk))
+            (bind(&StateMachineFAD::CmdEnable, this, placeholders::_1, FAD::kCmdSclk))
             ("Set SCLK");
         T::AddEvent("ENABLE_DRS", "B:1")
-            (boost::bind(&StateMachineFAD::CmdEnable, this, _1, FAD::kCmdDrsEnable))
+            (bind(&StateMachineFAD::CmdEnable, this, placeholders::_1, FAD::kCmdDrsEnable))
             ("Switch Domino wave");
         T::AddEvent("ENABLE_DWRITE", "B:1")
-            (boost::bind(&StateMachineFAD::CmdEnable, this, _1, FAD::kCmdDwrite))
+            (bind(&StateMachineFAD::CmdEnable, this, placeholders::_1, FAD::kCmdDwrite))
             ("Set Dwrite (possibly high / always low)");
         T::AddEvent("ENABLE_CONTINOUS_TRIGGER", "B:1")
-            (boost::bind(&StateMachineFAD::CmdEnable, this, _1, FAD::kCmdContTrigger))
+            (bind(&StateMachineFAD::CmdEnable, this, placeholders::_1, FAD::kCmdContTrigger))
             ("Enable continous (internal) trigger.");
         T::AddEvent("ENABLE_TRIGGER_LINE", "B:1")
-            (boost::bind(&StateMachineFAD::CmdEnable, this, _1, FAD::kCmdTriggerLine))
+            (bind(&StateMachineFAD::CmdEnable, this, placeholders::_1, FAD::kCmdTriggerLine))
             ("Incoming triggers can be accepted/will not be accepted");
         T::AddEvent("ENABLE_COMMAND_SOCKET_MODE", "B:1")
-            (boost::bind(&StateMachineFAD::CmdEnable, this, _1, FAD::kCmdSocket))
+            (bind(&StateMachineFAD::CmdEnable, this, placeholders::_1, FAD::kCmdSocket))
             ("Set debug mode (yes: dump events through command socket, no=dump events through other sockets)");
 
         T::AddEvent("SET_TRIGGER_RATE", "I:1")
-            (boost::bind(&StateMachineFAD::SetTriggerRate, this, _1))
+            (bind(&StateMachineFAD::SetTriggerRate, this, placeholders::_1))
             ("Enable continous trigger");
         T::AddEvent("SEND_SINGLE_TRIGGER")
-            (boost::bind(&StateMachineFAD::Trigger, this, 1))
+            (bind(&StateMachineFAD::Trigger, this, 1))
             ("Issue software triggers");
         T::AddEvent("SEND_N_TRIGGERS", "I")
-            (boost::bind(&StateMachineFAD::SendTriggers, this, _1))
+            (bind(&StateMachineFAD::SendTriggers, this, placeholders::_1))
             ("Issue software triggers");
         T::AddEvent("START_RUN", "")
-            (boost::bind(&StateMachineFAD::StartRun, this, _1, true))
+            (bind(&StateMachineFAD::StartRun, this, placeholders::_1, true))
             ("Set FAD DAQ mode. when started, no configurations must be send.");
         T::AddEvent("STOP_RUN")
-            (boost::bind(&StateMachineFAD::StartRun, this, _1, false))
+            (bind(&StateMachineFAD::StartRun, this, placeholders::_1, false))
             ("");
         T::AddEvent("PHASE_SHIFT", "S:1")
-            (boost::bind(&StateMachineFAD::PhaseShift, this, _1))
+            (bind(&StateMachineFAD::PhaseShift, this, placeholders::_1))
             ("Adjust ADC phase (in 'steps')");
 
         T::AddEvent("RESET_EVENT_COUNTER")
-            (boost::bind(&StateMachineFAD::Cmd, this, FAD::kCmdResetEventCounter))
+            (bind(&StateMachineFAD::Cmd, this, FAD::kCmdResetEventCounter))
             ("");
 
         T::AddEvent("SET_RUN_NUMBER", "X:1")
-            (boost::bind(&StateMachineFAD::SetRunNumber, this, _1))
+            (bind(&StateMachineFAD::SetRunNumber, this, placeholders::_1))
             ("");
 
         T::AddEvent("SET_MAX_MEMORY", "S:1")
-            (boost::bind(&StateMachineFAD::SetMaxMemoryBuffer, this, _1))
+            (bind(&StateMachineFAD::SetMaxMemoryBuffer, this, placeholders::_1))
             ("Set maximum memory buffer size allowed to be consumed by the EventBuilder to buffer events."
              "|memory[short]:Buffer size in Mega-bytes.");
 
         T::AddEvent("SET_REGISTER", "I:2")
-            (boost::bind(&StateMachineFAD::SetRegister, this, _1))
+            (bind(&StateMachineFAD::SetRegister, this, placeholders::_1))
             ("set register to value"
             "|addr[short]:Address of register"
@@ -1602,5 +1604,5 @@
         // FIXME:  Maybe add a mask which channels should be set?
         T::AddEvent("SET_REGION_OF_INTEREST", "I:2")
-            (boost::bind(&StateMachineFAD::SetRoi, this, _1))
+            (bind(&StateMachineFAD::SetRoi, this, placeholders::_1))
             ("Set region-of-interest to value"
             "|addr[short]:Address of register"
@@ -1609,5 +1611,5 @@
         // FIXME:  Maybe add a mask which channels should be set?
         T::AddEvent("SET_DAC_VALUE", "I:2")
-            (boost::bind(&StateMachineFAD::SetDac, this, _1))
+            (bind(&StateMachineFAD::SetDac, this, placeholders::_1))
             ("Set DAC numbers in range to value"
             "|addr[short]:Address of register (-1 for all)"
@@ -1615,52 +1617,52 @@
 
         T::AddEvent("CONFIGURE", "C", FAD::kConnected, FAD::kConfigured)
-            (boost::bind(&StateMachineFAD::StartConfigure, this, _1))
+            (bind(&StateMachineFAD::StartConfigure, this, placeholders::_1))
             ("");
 
         T::AddEvent("RESET_CONFIGURE", FAD::kConfiguring, FAD::kConfigured)
-            (boost::bind(&StateMachineFAD::ResetConfig, this))
+            (bind(&StateMachineFAD::ResetConfig, this))
             ("");
 
         // Verbosity commands
         T::AddEvent("SET_VERBOSE", "B:1")
-            (boost::bind(&StateMachineFAD::SetVerbosity, this, _1))
+            (bind(&StateMachineFAD::SetVerbosity, this, placeholders::_1))
             ("Set verbosity state"
              "|verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data");
 
         T::AddEvent("SET_HEX_OUTPUT", "B:1")
-            (boost::bind(&StateMachineFAD::SetHexOutput, this, _1))
+            (bind(&StateMachineFAD::SetHexOutput, this, placeholders::_1))
             ("Enable or disable hex output for received data"
              "|hexout[bool]:disable or enable hex output for received data (yes/no)");
 
         T::AddEvent("SET_DATA_OUTPUT", "B:1")
-            (boost::bind(&StateMachineFAD::SetDataOutput, this, _1))
+            (bind(&StateMachineFAD::SetDataOutput, this, placeholders::_1))
             ("");
 
         T::AddEvent("SET_DEBUG_TX", "B:1")
-            (boost::bind(&StateMachineFAD::SetDebugTx, this, _1))
+            (bind(&StateMachineFAD::SetDebugTx, this, placeholders::_1))
 	    ("Enable or disable the output of messages in case of successfull data transmission to the boards."
 	     "|debug[bool]:disable or enable debug output for transmitted data (yes/no)");
 
         T::AddEvent("SET_DEBUG_EVENT_BUILDER_OUT", "B:1")
-            (boost::bind(&StateMachineFAD::SetDebugEb, this, _1))
+            (bind(&StateMachineFAD::SetDebugEb, this, placeholders::_1))
 	    ("");
 
         T::AddEvent("PRINT_EVENT", "S:1")
-            (boost::bind(&StateMachineFAD::PrintEvent, this, _1))
+            (bind(&StateMachineFAD::PrintEvent, this, placeholders::_1))
             ("Print (last) event"
              "|board[short]:slot from which the event should be printed (-1 for all)");
 
         T::AddEvent("DUMP_STREAM", "B:1")
-            (boost::bind(&StateMachineFAD::SetDumpStream, this, _1))
+            (bind(&StateMachineFAD::SetDumpStream, this, placeholders::_1))
             ("For debugging purpose: the binary data stream read from the sockets 0-7 can be dumped to files."
              "|switch[bool]:Enable (yes) or disable (no)");
 
         T::AddEvent("DUMP_RECV", "B:1")
-            (boost::bind(&StateMachineFAD::SetDumpRecv, this, _1))
+            (bind(&StateMachineFAD::SetDumpRecv, this, placeholders::_1))
             ("For debugging purpose: the times when data has been receives are dumped to a file."
              "|switch[bool]:Enable (yes) or disable (no)");
 
         T::AddEvent("BLOCK_TRANSMISSION", "S:1;B:1")
-            (boost::bind(&StateMachineFAD::SetBlockTransmission, this, _1))
+            (bind(&StateMachineFAD::SetBlockTransmission, this, placeholders::_1))
             ("Blocks the transmission of commands to the given slot. Use with care! For debugging pupose only!"
              "|slot[short]:Slot to which the command transmission should be blocked (0-39)"
@@ -1668,5 +1670,5 @@
 
         T::AddEvent("BLOCK_TRANSMISSION_RANGE", "S:2;B:1")
-            (boost::bind(&StateMachineFAD::SetBlockTransmissionRange, this, _1))
+            (bind(&StateMachineFAD::SetBlockTransmissionRange, this, placeholders::_1))
             ("Blocks the transmission of commands to the given range of slots. Use with care! For debugging pupose only!"
              "|first[short]:First slot to which the command transmission should be blocked (0-39)"
@@ -1675,5 +1677,5 @@
 
         T::AddEvent("IGNORE_EVENTS", "S:1;B:1")
-            (boost::bind(&StateMachineFAD::SetIgnoreSlot, this, _1))
+            (bind(&StateMachineFAD::SetIgnoreSlot, this, placeholders::_1))
             ("Instructs the event-builder to ignore events from the given slot but still read the data from the socket."
              "|slot[short]:Slot from which the data should be ignored when building events"
@@ -1681,5 +1683,5 @@
 
         T::AddEvent("IGNORE_EVENTS_RANGE", "S:2;B:1")
-            (boost::bind(&StateMachineFAD::SetIgnoreSlots, this, _1))
+            (bind(&StateMachineFAD::SetIgnoreSlots, this, placeholders::_1))
             ("Instructs the event-builder to ignore events from the given slot but still read the data from the socket."
              "|first[short]:First slot from which the data should be ignored when building events"
@@ -1688,9 +1690,9 @@
 
         T::AddEvent("CLOSE_OPEN_FILES", FAD::kConnecting, FAD::kConnected)
-            (boost::bind(&StateMachineFAD::CloseOpenFiles, this))
+            (bind(&StateMachineFAD::CloseOpenFiles, this))
             ("Close all run files opened by the EventBuilder.");
 
         T::AddEvent("TEST", "S:1")
-           (boost::bind(&StateMachineFAD::Test, this, _1))
+           (bind(&StateMachineFAD::Test, this, placeholders::_1))
             ("");
 
@@ -1699,50 +1701,50 @@
         // Conenction commands
         T::AddEvent("START", FAD::kOffline)
-            (boost::bind(&StateMachineFAD::StartConnection, this))
+            (bind(&StateMachineFAD::StartConnection, this))
             ("Start EventBuilder thread and connect all valid slots.");
 
         T::AddEvent("STOP",  FAD::kDisconnected, FAD::kConnecting, FAD::kConnected)
-            (boost::bind(&StateMachineFAD::StopConnection, this))
+            (bind(&StateMachineFAD::StopConnection, this))
             ("Stop EventBuilder thread (still write buffered events) and disconnect all slots.");
 
         T::AddEvent("ABORT", FAD::kDisconnected, FAD::kConnecting, FAD::kConnected)
-            (boost::bind(&StateMachineFAD::AbortConnection, this))
+            (bind(&StateMachineFAD::AbortConnection, this))
             ("Immediately abort EventBuilder thread and disconnect all slots.");
 
         T::AddEvent("SOFT_RESET", FAD::kConnected)
-            (boost::bind(&StateMachineFAD::Reset, this, true))
+            (bind(&StateMachineFAD::Reset, this, true))
             ("Wait for buffers to drain, close all files and reinitialize event builder thread.");
 
         T::AddEvent("HARD_RESET", FAD::kConnected)
-            (boost::bind(&StateMachineFAD::Reset, this, false))
+            (bind(&StateMachineFAD::Reset, this, false))
             ("Free all buffers, close all files and reinitialize event builder thread.");
 
         T::AddEvent("CONNECT", "S:1", FAD::kDisconnected, FAD::kConnecting, FAD::kConnected)
-            (boost::bind(&StateMachineFAD::EnableSlot, this, _1, true))
+            (bind(&StateMachineFAD::EnableSlot, this, placeholders::_1, true))
             ("Connect a disconnected slot.");
 
         T::AddEvent("DISCONNECT", "S:1", FAD::kConnecting, FAD::kConnected)
-            (boost::bind(&StateMachineFAD::EnableSlot, this, _1, false))
+            (bind(&StateMachineFAD::EnableSlot, this, placeholders::_1, false))
             ("Disconnect a connected slot.");
 
         T::AddEvent("TOGGLE", "S:1", FAD::kDisconnected, FAD::kConnecting, FAD::kConnected)
-            (boost::bind(&StateMachineFAD::ToggleSlot, this, _1))
+            (bind(&StateMachineFAD::ToggleSlot, this, placeholders::_1))
             ("");
 
         T::AddEvent("SET_FILE_FORMAT", "S:1")
-            (boost::bind(&StateMachineFAD::SetFileFormat, this, _1))
+            (bind(&StateMachineFAD::SetFileFormat, this, placeholders::_1))
             ("");
 
 
         T::AddEvent("ADD_ADDRESS", "C", FAD::kOffline)
-            (boost::bind(&StateMachineFAD::AddAddress, this, _1))
+            (bind(&StateMachineFAD::AddAddress, this, placeholders::_1))
             ("Add the address of a DRS4 board to the first free slot"
              "|IP[string]:address in the format <address:port>");
         T::AddEvent("REMOVE_SLOT", "S:1", FAD::kOffline)
-            (boost::bind(&StateMachineFAD::RemoveSlot, this, _1))
+            (bind(&StateMachineFAD::RemoveSlot, this, placeholders::_1))
             ("Remove the Iaddress in slot n. For a list see LIST"
              "|slot[short]:Remove the address in slot n from the list");
         T::AddEvent("LIST_SLOTS")
-            (boost::bind(&StateMachineFAD::ListSlots, this))
+            (bind(&StateMachineFAD::ListSlots, this))
             ("Print a list of all available board addressesa and whether they are enabled");
     }
@@ -2023,6 +2025,6 @@
     shell.SetReceiver(io_service);
 
-    boost::thread t(boost::bind(RunThread, &io_service));
-    //boost::thread t(boost::bind(&StateMachineFAD<S>::Run, &io_service));
+    boost::thread t(bind(RunThread, &io_service));
+    //boost::thread t(bind(&StateMachineFAD<S>::Run, &io_service));
 
     if (conf.Has("cmd"))
Index: trunk/FACT++/src/fscctrl.cc
===================================================================
--- trunk/FACT++/src/fscctrl.cc	(revision 11480)
+++ trunk/FACT++/src/fscctrl.cc	(revision 11481)
@@ -1,3 +1,3 @@
-#include <boost/bind.hpp>
+#include <functional>
 
 #include "Dim.h"
@@ -11,5 +11,4 @@
 
 #include "tools.h"
-
 
 namespace ba    = boost::asio;
@@ -370,7 +369,7 @@
     }
 
-    boost::function<int(const EventImp &)> Wrapper(boost::function<void()> func)
-    {
-        return boost::bind(&StateMachineFSC::Wrap, this, func);
+    function<int(const EventImp &)> Wrapper(function<void()> func)
+    {
+        return bind(&StateMachineFSC::Wrap, this, func);
     }
 
@@ -480,10 +479,10 @@
         // Verbosity commands
         T::AddEvent("SET_VERBOSE", "B:1")
-            (boost::bind(&StateMachineFSC::SetVerbosity, this, _1))
+            (bind(&StateMachineFSC::SetVerbosity, this, placeholders::_1))
             ("set verbosity state"
              "|verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data");
 
         T::AddEvent("DUMP_STREAM", "B:1")
-            (boost::bind(&StateMachineFSC::SetDumpStream, this, _1))
+            (bind(&StateMachineFSC::SetDumpStream, this, placeholders::_1))
             (""
              "");
@@ -491,9 +490,9 @@
         // Conenction commands
         AddEvent("DISCONNECT", kStateConnected)
-            (boost::bind(&StateMachineFSC::Disconnect, this))
+            (bind(&StateMachineFSC::Disconnect, this))
             ("disconnect from ethernet");
 
         AddEvent("RECONNECT", "O", kStateDisconnected, kStateConnected)
-            (boost::bind(&StateMachineFSC::Reconnect, this, _1))
+            (bind(&StateMachineFSC::Reconnect, this, placeholders::_1))
             ("(Re)connect ethernet connection to FTM, a new address can be given"
              "|[host][string]:new ethernet address in the form <host:port>");
Index: trunk/FACT++/src/ftmctrl.cc
===================================================================
--- trunk/FACT++/src/ftmctrl.cc	(revision 11480)
+++ trunk/FACT++/src/ftmctrl.cc	(revision 11481)
@@ -19,4 +19,5 @@
 
 using namespace std;
+using namespace std::placeholders;
 
 // ------------------------------------------------------------------------
@@ -1135,7 +1136,7 @@
     }
 
-    boost::function<int(const EventImp &)> Wrapper(boost::function<void()> func)
-    {
-        return boost::bind(&StateMachineFTM::Wrap, this, func);
+    function<int(const EventImp &)> Wrapper(function<void()> func)
+    {
+        return bind(&StateMachineFTM::Wrap, this, func);
     }
 
@@ -1706,4 +1707,5 @@
         // deletion and creation of threads and more.
 
+
         // State names
         T::AddStateName(FTM::kDisconnected, "Disconnected",
@@ -1731,26 +1733,26 @@
         // FTM Commands
         T::AddEvent("TOGGLE_LED", FTM::kIdle)
-            (Wrapper(boost::bind(&ConnectionFTM::CmdToggleLed, &fFTM)))
+            (Wrapper(bind(&ConnectionFTM::CmdToggleLed, &fFTM)))
             ("toggle led");
 
         T::AddEvent("PING", FTM::kIdle)
-            (Wrapper(boost::bind(&ConnectionFTM::CmdPing, &fFTM)))
+            (Wrapper(bind(&ConnectionFTM::CmdPing, &fFTM)))
             ("send ping");
 
         T::AddEvent("REQUEST_DYNAMIC_DATA", FTM::kIdle)
-            (Wrapper(boost::bind(&ConnectionFTM::CmdReqDynDat, &fFTM)))
+            (Wrapper(bind(&ConnectionFTM::CmdReqDynDat, &fFTM)))
             ("request transmission of dynamic data block");
 
         T::AddEvent("REQUEST_STATIC_DATA", FTM::kIdle)
-            (Wrapper(boost::bind(&ConnectionFTM::CmdReqStatDat, &fFTM)))
+            (Wrapper(bind(&ConnectionFTM::CmdReqStatDat, &fFTM)))
             ("request transmission of static data from FTM to memory");
 
         T::AddEvent("GET_REGISTER", "I", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::GetRegister, this, _1))
+            (bind(&StateMachineFTM::GetRegister, this, placeholders::_1))
             ("read register from address addr"
             "|addr[short]:Address of register");
 
         T::AddEvent("SET_REGISTER", "I:2", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetRegister, this, _1))
+            (bind(&StateMachineFTM::SetRegister, this, placeholders::_1))
             ("set register to value"
             "|addr[short]:Address of register"
@@ -1758,22 +1760,22 @@
 
         T::AddEvent("START_RUN", FTM::kIdle, FTM::kConfigured)
-            (Wrapper(boost::bind(&ConnectionFTM::CmdStartRun, &fFTM)))
+            (Wrapper(bind(&ConnectionFTM::CmdStartRun, &fFTM)))
             ("start a run (start distributing triggers)");
 
         T::AddEvent("STOP_RUN", FTM::kTakingData)
-            (Wrapper(boost::bind(&ConnectionFTM::CmdStopRun, &fFTM)))
+            (Wrapper(bind(&ConnectionFTM::CmdStopRun, &fFTM)))
             ("stop a run (stop distributing triggers)");
 
         T::AddEvent("TAKE_N_EVENTS", "I", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::TakeNevents, this, _1))
+            (bind(&StateMachineFTM::TakeNevents, this, placeholders::_1))
             ("take n events (distribute n triggers)|number[int]:Number of events to be taken");
 
         T::AddEvent("DISABLE_REPORTS", "B", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::DisableReports, this, _1))
+            (bind(&StateMachineFTM::DisableReports, this, placeholders::_1))
             ("disable sending rate reports"
              "|status[bool]:disable or enable that the FTM sends rate reports (yes/no)");
 
         T::AddEvent("SET_THRESHOLD", "I:2", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetThreshold, this, _1))
+            (bind(&StateMachineFTM::SetThreshold, this, placeholders::_1))
             ("Set the comparator threshold"
              "|Patch[idx]:Index of the patch (0-159), -1 for all"
@@ -1781,10 +1783,10 @@
 
         T::AddEvent("SET_PRESCALING", "I:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetPrescaling, this, _1))
+            (bind(&StateMachineFTM::SetPrescaling, this, placeholders::_1))
             (""
              "|[]:");
 
         T::AddEvent("ENABLE_FTU", "I:1;B:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::EnableFTU, this, _1))
+            (bind(&StateMachineFTM::EnableFTU, this, placeholders::_1))
             ("Enable or disable FTU"
              "|Board[idx]:Index of the board (0-39), -1 for all"
@@ -1792,50 +1794,50 @@
 
         T::AddEvent("DISABLE_PIXEL", "S:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::EnablePixel, this, _1, false))
+            (bind(&StateMachineFTM::EnablePixel, this, placeholders::_1, false))
             ("(-1 or all)");
 
         T::AddEvent("ENABLE_PIXEL", "S:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::EnablePixel, this, _1, true))
+            (bind(&StateMachineFTM::EnablePixel, this, placeholders::_1, true))
             ("(-1 or all)");
 
         T::AddEvent("DISABLE_ALL_PIXELS_EXCEPT", "S:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::DisableAllPixelsExcept, this, _1))
+            (bind(&StateMachineFTM::DisableAllPixelsExcept, this, placeholders::_1))
             ("");
 
         T::AddEvent("DISABLE_ALL_PATCHES_EXCEPT", "S:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::DisableAllPatchesExcept, this, _1))
+            (bind(&StateMachineFTM::DisableAllPatchesExcept, this, placeholders::_1))
             ("");
 
         T::AddEvent("TOGGLE_PIXEL", "S:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::TogglePixel, this, _1))
+            (bind(&StateMachineFTM::TogglePixel, this, placeholders::_1))
             ("");
 
         T::AddEvent("TOGGLE_FTU", "I:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::ToggleFTU, this, _1))
+            (bind(&StateMachineFTM::ToggleFTU, this, placeholders::_1))
             ("Toggle status of FTU (this is mainly meant to be used in the GUI)"
              "|Board[idx]:Index of the board (0-39)");
 
         T::AddEvent("SET_TRIGGER_INTERVAL", "I:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetTriggerInterval, this, _1))
+            (bind(&StateMachineFTM::SetTriggerInterval, this, placeholders::_1))
             ("Sets the trigger interval which is the distance between two consecutive artificial triggers."
              "|interval[int]:The applied trigger interval is: interval*4ns+8ns");
 
         T::AddEvent("SET_TRIGGER_DELAY", "I:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetTriggerDelay, this, _1))
+            (bind(&StateMachineFTM::SetTriggerDelay, this, placeholders::_1))
             (""
              "|delay[int]:The applied trigger delay is: delay*4ns+8ns");
 
         T::AddEvent("SET_TIME_MARKER_DELAY", "I:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetTimeMarkerDelay, this, _1))
+            (bind(&StateMachineFTM::SetTimeMarkerDelay, this, placeholders::_1))
             (""
             "|delay[int]:The applied time marker delay is: delay*4ns+8ns");
 
         T::AddEvent("SET_DEAD_TIME", "I:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetDeadTime, this, _1))
+            (bind(&StateMachineFTM::SetDeadTime, this, placeholders::_1))
             (""
             "|dead_time[int]:The applied dead time is: dead_time*4ns+8ns");
 
         T::AddEvent("ENABLE_TRIGGER", "B:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::Enable, this, _1, FTM::StaticData::kTrigger))
+            (bind(&StateMachineFTM::Enable, this, placeholders::_1, FTM::StaticData::kTrigger))
             ("Switch on the physics trigger"
              "|Enable[bool]:Enable physics trigger (yes/no)");
@@ -1843,5 +1845,5 @@
         // FIXME: Switch on/off depending on sequence
         T::AddEvent("ENABLE_EXT1", "B:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::Enable, this, _1, FTM::StaticData::kExt1))
+            (bind(&StateMachineFTM::Enable, this, placeholders::_1, FTM::StaticData::kExt1))
             ("Switch on the triggers through the first external line"
              "|Enable[bool]:Enable ext1 trigger (yes/no)");
@@ -1849,20 +1851,20 @@
         // FIXME: Switch on/off depending on sequence
         T::AddEvent("ENABLE_EXT2", "B:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::Enable, this, _1, FTM::StaticData::kExt2))
+            (bind(&StateMachineFTM::Enable, this, placeholders::_1, FTM::StaticData::kExt2))
             ("Switch on the triggers through the second external line"
              "|Enable[bool]:Enable ext2 trigger (yes/no)");
 
         T::AddEvent("ENABLE_VETO", "B:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::Enable, this, _1, FTM::StaticData::kVeto))
+            (bind(&StateMachineFTM::Enable, this, placeholders::_1, FTM::StaticData::kVeto))
             ("Enable veto line"
              "|Enable[bool]:Enable veto (yes/no)");
 
         T::AddEvent("ENABLE_CLOCK_CONDITIONER", "B:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::Enable, this, _1, FTM::StaticData::kClockConditioner))
+            (bind(&StateMachineFTM::Enable, this, placeholders::_1, FTM::StaticData::kClockConditioner))
             ("Enable clock conidtioner output in favor of time marker output"
              "|Enable[bool]:Enable clock conditioner (yes/no)");
 
         T::AddEvent("SET_TRIGGER_SEQUENCE", "S:3", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetTriggerSeq, this, _1))
+            (bind(&StateMachineFTM::SetTriggerSeq, this, placeholders::_1))
             ("Setup the sequence of artificial triggers produced by the FTM"
              "|Ped[short]:number of pedestal triggers in a row"
@@ -1871,27 +1873,27 @@
 
         T::AddEvent("SET_TRIGGER_MULTIPLICITY", "S:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetTriggerMultiplicity, this, _1))
+            (bind(&StateMachineFTM::SetTriggerMultiplicity, this, placeholders::_1))
             ("Setup the Multiplicity condition for physcis triggers"
              "|N[int]:Number of requirered coincident triggers from sum-patches (1-40)");
 
         T::AddEvent("SET_TRIGGER_WINDOW", "S:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetTriggerWindow, this, _1))
+            (bind(&StateMachineFTM::SetTriggerWindow, this, placeholders::_1))
             ("");
 
         T::AddEvent("SET_CALIBRATION_MULTIPLICITY", "S:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetCalibMultiplicity, this, _1))
+            (bind(&StateMachineFTM::SetCalibMultiplicity, this, placeholders::_1))
             ("Setup the Multiplicity condition for artificial (calibration) triggers"
              "|N[int]:Number of requirered coincident triggers from sum-patches (1-40)");
 
         T::AddEvent("SET_CALIBRATION_WINDOW", "S:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetCalibWindow, this, _1))
+            (bind(&StateMachineFTM::SetCalibWindow, this, placeholders::_1))
             ("");
 
         T::AddEvent("SET_CLOCK_FREQUENCY", "S:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetClockFrequency, this, _1))
+            (bind(&StateMachineFTM::SetClockFrequency, this, placeholders::_1))
             ("");
 
         T::AddEvent("SET_CLOCK_REGISTER", "X:8", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SetClockRegister, this, _1))
+            (bind(&StateMachineFTM::SetClockRegister, this, placeholders::_1))
             ("");
 
@@ -1899,9 +1901,9 @@
         // we can allow it in idle _and_ taking data
         T::AddEvent("CONFIGURE", "C", FTM::kIdle, FTM::kTakingData)
-            (boost::bind(&StateMachineFTM::ConfigureFTM, this, _1))
+            (bind(&StateMachineFTM::ConfigureFTM, this, placeholders::_1))
             ("");
 
         T::AddEvent("RESET_CONFIGURE", FTM::kConfiguring1, FTM::kConfiguring2, FTM::kConfigured, FTM::kConfigError1, FTM::kConfigError2)
-            (boost::bind(&StateMachineFTM::ResetConfig, this))
+            (bind(&StateMachineFTM::ResetConfig, this))
             ("");
 
@@ -1909,10 +1911,10 @@
 
         T::AddEvent("RESET_CRATE", "S:1", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::ResetCrate, this, _1))
+            (bind(&StateMachineFTM::ResetCrate, this, placeholders::_1))
             ("Reset one of the crates 0-3"
              "|crate[short]:Crate number to be reseted (0-3)");
 
         T::AddEvent("RESET_CAMERA", FTM::kIdle)
-            (Wrapper(boost::bind(&ConnectionFTM::CmdResetCamera, &fFTM)))
+            (Wrapper(bind(&ConnectionFTM::CmdResetCamera, &fFTM)))
             ("Reset all crates. The commands are sent in the order 0,1,2,3");
 
@@ -1920,10 +1922,10 @@
         // Load/save static data block
         T::AddEvent("SAVE", "C", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::SaveStaticData, this, _1))
+            (bind(&StateMachineFTM::SaveStaticData, this, placeholders::_1))
             ("Saves the static data (FTM configuration) from memory to a file"
              "|filename[string]:Filename (can include a path), .bin is automatically added");
 
         T::AddEvent("LOAD", "C", FTM::kIdle)
-            (boost::bind(&StateMachineFTM::LoadStaticData, this, _1))
+            (bind(&StateMachineFTM::LoadStaticData, this, placeholders::_1))
             ("Loads the static data (FTM configuration) from a file into memory and sends it to the FTM"
              "|filename[string]:Filename (can include a path), .bin is automatically added");
@@ -1933,15 +1935,15 @@
         // Verbosity commands
         T::AddEvent("SET_VERBOSE", "B")
-            (boost::bind(&StateMachineFTM::SetVerbosity, this, _1))
+            (bind(&StateMachineFTM::SetVerbosity, this, placeholders::_1))
             ("set verbosity state"
              "|verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data");
 
         T::AddEvent("SET_HEX_OUTPUT", "B")
-            (boost::bind(&StateMachineFTM::SetHexOutput, this, _1))
+            (bind(&StateMachineFTM::SetHexOutput, this, placeholders::_1))
             ("enable or disable hex output for received data"
              "|hexout[bool]:disable or enable hex output for received data (yes/no)");
 
         T::AddEvent("SET_DYNAMIC_OUTPUT", "B")
-            (boost::bind(&StateMachineFTM::SetDynamicOut, this, _1))
+            (bind(&StateMachineFTM::SetDynamicOut, this, placeholders::_1))
             ("enable or disable output for received dynamic data (data is still broadcasted via Dim)"
              "|dynout[bool]:disable or enable output for dynamic data (yes/no)");
@@ -1950,9 +1952,9 @@
         // Conenction commands
         T::AddEvent("DISCONNECT", FTM::kConnected, FTM::kIdle)
-            (boost::bind(&StateMachineFTM::Disconnect, this))
+            (bind(&StateMachineFTM::Disconnect, this))
             ("disconnect from ethernet");
 
         T::AddEvent("RECONNECT", "O", FTM::kDisconnected, FTM::kConnected, FTM::kIdle, FTM::kConfigured)
-            (boost::bind(&StateMachineFTM::Reconnect, this, _1))
+            (bind(&StateMachineFTM::Reconnect, this, placeholders::_1))
             ("(Re)connect ethernet connection to FTM, a new address can be given"
              "|[host][string]:new ethernet address in the form <host:port>");
@@ -2238,6 +2240,6 @@
     shell.SetReceiver(io_service);
 
-    boost::thread t(boost::bind(RunThread, &io_service));
-    // boost::thread t(boost::bind(&StateMachineFTM<S>::Run, &io_service));
+    boost::thread t(bind(RunThread, &io_service));
+    // boost::thread t(bind(&StateMachineFTM<S>::Run, &io_service));
 
     if (conf.Has("cmd"))
Index: trunk/FACT++/src/mcp.cc
===================================================================
--- trunk/FACT++/src/mcp.cc	(revision 11480)
+++ trunk/FACT++/src/mcp.cc	(revision 11481)
@@ -1,4 +1,2 @@
-#include <boost/bind.hpp>
-
 #include "Dim.h"
 #include "Event.h"
@@ -42,5 +40,5 @@
     boost::function<int(const EventImp &)> Wrapper(boost::function<void()> func)
     {
-        return boost::bind(&StateMachineMCP::Wrap, this, func);
+        return bind(&StateMachineMCP::Wrap, this, func);
     }*/
 
@@ -332,23 +330,23 @@
 
         AddEvent("START", kStateIdle)
-            (boost::bind(&StateMachineMCP::StartRun, this, _1))
+            (bind(&StateMachineMCP::StartRun, this, placeholders::_1))
             ("");
 
         AddEvent("STOP")
-            (boost::bind(&StateMachineMCP::StopRun, this, _1))
+            (bind(&StateMachineMCP::StopRun, this, placeholders::_1))
             ("");
 
         AddEvent("RESET", kStateConfiguring1, kStateConfiguring2, kStateConfigured)
-            (boost::bind(&StateMachineMCP::Reset, this, _1))
+            (bind(&StateMachineMCP::Reset, this, placeholders::_1))
             ("");
 
         // Verbosity commands
         AddEvent("SET_VERBOSE", "B:1")
-            (boost::bind(&StateMachineMCP::SetVerbosity, this, _1))
+            (bind(&StateMachineMCP::SetVerbosity, this, placeholders::_1))
             ("set verbosity state"
              "|verbosity[bool]:disable or enable verbosity for received data (yes/no), except dynamic data");
 
         AddEvent("PRINT")
-            (boost::bind(&StateMachineMCP::Print, this))
+            (bind(&StateMachineMCP::Print, this))
             ("");
     }
@@ -422,6 +420,6 @@
     shell.SetReceiver(io_service);
 
-    boost::thread t(boost::bind(RunThread, &io_service));
-    // boost::thread t(boost::bind(&StateMachineMCP<S>::Run, &io_service));
+    boost::thread t(bind(RunThread, &io_service));
+    // boost::thread t(bind(&StateMachineMCP<S>::Run, &io_service));
 
     if (conf.Has("cmd"))
Index: trunk/FACT++/src/scheduler.cc
===================================================================
--- trunk/FACT++/src/scheduler.cc	(revision 11480)
+++ trunk/FACT++/src/scheduler.cc	(revision 11481)
@@ -1,5 +1,4 @@
 #include <vector>
 
-#include <boost/bind.hpp>
 #include <boost/regex.hpp>
 
