Index: /trunk/FACT++/src/drivectrl.cc
===================================================================
--- /trunk/FACT++/src/drivectrl.cc	(revision 18378)
+++ /trunk/FACT++/src/drivectrl.cc	(revision 18379)
@@ -1314,5 +1314,5 @@
     bool IsBlocked() const
     {
-        return (fStatusSys&0x10)==0 || (fStatusSys&kManualMode);
+        return (fStatusSys&kEmergencyOk)==0 || (fStatusSys&kManualMode);
     }
 
@@ -2468,9 +2468,9 @@
         // a drive goes below the RF state during operation without
         // a warning or error message.
+        if (fDrive.IsOnline() && fDrive.IsBlocked())
+            return State::kBlocked;
+
         if (fDrive.IsOnline() && !fDrive.IsReady())
             return State::kAvailable;
-
-        if (fDrive.IsOnline() && fDrive.IsBlocked())
-            return State::kBlocked;
 
         // This is the case as soon as the init commands were send
@@ -2648,5 +2648,5 @@
                         "Connected to SPS and to IndraDrives, but at least one drive not in RF");
         T::AddStateName(State::kBlocked, "Blocked",
-                        "Drive system is blocked by manual operation or an released  emergeny button");
+                        "Drive system is blocked by manual operation or a pressed emergeny button");
         T::AddStateName(State::kArmed, "Armed",
                         "Connected to SPS and IndraDrives in RF, but not yet initialized");
@@ -2762,5 +2762,5 @@
             ("Park the telescope");
 
-        T::AddEvent("STOP")
+        T::AddEvent("STOP")(State::kUnavailable)(State::kAvailable)(State::kArmed)(State::kInitialized)(State::kStopping)(State::kParking)(State::kMoving)(State::kTracking)(State::kOnTrack)(State::kPositioningFailed)(State::kAllowedRangeExceeded)
             (bind(&StateMachineDrive::StopMovement, this))
             ("Stop any kind of movement.");
