Index: trunk/FACT++/src/smartfact.cc
===================================================================
--- trunk/FACT++/src/smartfact.cc	(revision 14508)
+++ trunk/FACT++/src/smartfact.cc	(revision 14509)
@@ -1368,13 +1368,13 @@
     }
 
-    int HandleMcpStateChange()
+    int HandleFtmControlStateChange()
     {
         const int32_t &last  = fDimFtmControl.last.second;
         const int32_t &state = fDimFtmControl.state();
 
-        // If a new run has ben started ensure that the counter
+        // If a new run has been started ensure that the counter
         // is reset. The reset in HandleFtmTriggerRates might
         // arrive only after the run was started.
-        if (last<MCP::State::kTriggerOn && state>=MCP::State::kTriggerOn)
+        if (last!=FTM::State::kTriggerOn && state==MCP::State::kTriggerOn)
             fFtmControlTriggerRateTooLow = -1;
 
@@ -2304,8 +2304,9 @@
                            "Sensor temperature exceeds outside temperature by more than 8&deg;C");
 
-        newerr |= SetError(fFtmControlTriggerRateTooLow>1 && fDimMcp.state()==MCP::State::kTakingData,
-                           "Trigger rate below 1Hz during data taking");
-
-        newerr |= SetError(fDimFtmControl.state()>FTM::State::kDisconnected&&(fFtmControlState&FTM::kFtmLocked)==0,
+        newerr |= SetError(fFtmControlTriggerRateTooLow>1 && fDimFtmControl.state()==FTM::State::kTriggerOn,
+                           "Trigger rate below 1Hz while trigger switched on");
+
+        newerr |= SetError((fDimFtmControl.state()==FTM::State::kTriggerOn||fDimFtmControl.state()==FTM::State::kIdle) &&
+                           (fFtmControlState&FTM::kFtmLocked)==0,
                            "FTM - clock conditioner not locked!");
 
@@ -2811,6 +2812,6 @@
 
         fDimFscControl.SetCallback(bind(&StateMachineSmartFACT::HandleFscControlStateChange, this, placeholders::_1));
+        fDimFtmControl.SetCallback(bind(&StateMachineSmartFACT::HandleFtmControlStateChange, this));
         fDimDriveControl.SetCallback(bind(&StateMachineSmartFACT::HandleDriveControlStateChange, this, placeholders::_1));
-        fDimMcp.SetCallback(bind(&StateMachineSmartFACT::HandleMcpStateChange, this));
         fDimControl.SetCallback(bind(&StateMachineSmartFACT::HandleControlStateChange, this, placeholders::_1));
         fDimControl.AddCallback("dotest.dim", bind(&StateMachineSmartFACT::HandleDoTest, this, placeholders::_1));
