Index: /trunk/FACT++/src/smartfact.cc
===================================================================
--- /trunk/FACT++/src/smartfact.cc	(revision 15186)
+++ /trunk/FACT++/src/smartfact.cc	(revision 15187)
@@ -1388,4 +1388,5 @@
     }
 
+    /*
     int HandleFtmControlStateChange()
     {
@@ -1400,5 +1401,5 @@
 
         return StateMachineImp::kSM_KeepState;
-    }
+    }*/
 
 
@@ -1415,19 +1416,6 @@
         const FTM::DimTriggerRates &dim = d.Ref<FTM::DimTriggerRates>();
 
-        // New run started
-        if (dim.fTriggerRate<0)
-        {
-            fFtmControlTriggerRateTooLow = -1;
-            return GetCurrentState();
-        }
-
-        // At the end of a run sometimes the trigger rate drops (the
-        // service is trasmitted) before the run is 'officially' finished
-        // by the MCP. Hence, we get a warning. So we have to require
         // two consecutive low rates.
-        if (dim.fTriggerRate<1)
-            fFtmControlTriggerRateTooLow++;
-        else
-            fFtmControlTriggerRateTooLow=0;
+        fFtmControlTriggerRateTooLow = (fFtmControlState&FTM::kFtmStates)==FTM::kRunning && dim.fTriggerRate<1;
 
         const float *brates = dim.fBoardRate; // Board rate
@@ -1484,6 +1472,5 @@
         // If the FTM is in state Configuring, the clock conditioner
         // is always reported to be unlocked
-        if (d.GetQoS()!=2)
-            fFtmControlState = d.GetQoS();
+        fFtmControlState = d.GetQoS();
 
         const FTM::DimStaticData &dat = d.Ref<FTM::DimStaticData>();
@@ -2379,9 +2366,8 @@
                            "Sensor temperature exceeds outside temperature by more than 9&deg;C");
 
-        newerr |= SetError(fFtmControlTriggerRateTooLow>2 && fDimFtmControl.state()==FTM::State::kTriggerOn,
+        newerr |= SetError(fFtmControlTriggerRateTooLow>1,
                            "Trigger rate below 1Hz while trigger switched on");
 
-        newerr |= SetError((fDimFtmControl.state()==FTM::State::kTriggerOn||fDimFtmControl.state()==FTM::State::kIdle) &&
-                           (fFtmControlState&FTM::kFtmLocked)==0,
+        newerr |= SetError(fFtmControlState!=FTM::kConfiguring && (fFtmControlState&FTM::kFtmLocked)==0,
                            "FTM - clock conditioner not locked!");
 
