Index: trunk/FACT++/src/drivectrl.cc
===================================================================
--- trunk/FACT++/src/drivectrl.cc	(revision 19415)
+++ trunk/FACT++/src/drivectrl.cc	(revision 19416)
@@ -805,4 +805,5 @@
         kAxisRpmMode  = 0x04,  // SPS reports
         kAxisRf       = 0x20,  // IndraDrive reports Rf (Regler freigegeben)
+        kAxisError    = 0x40,  // IndraDrive reports an error
         kAxisHasPower = 0x80   // IndraDrive reports axis power on
     };
@@ -824,5 +825,5 @@
          TX3M_STATUS.4  := FB_soll_drehen_links OR FB_soll_drehen_rechts OR FB_soll_schwenk_auf OR FB_soll_schwenk_ab;
          TX3M_STATUS.5  := X_ist_freigegeben;
-         TX3M_STATUS.6  := 1;
+         TX3M_STATUS.6  := NOT X_Fehler; (only in MATE, FACT==1)
          TX3M_STATUS.7  := LeistungEinAz;
 
@@ -857,5 +858,5 @@
         }
 
-        const uint8_t axis = (data[0]&0xa1) | (data[3]&0x06);
+        const uint8_t axis = (data[0]&0xa1) | (data[3]&0x46);
         if (fStatusAxis[node/2]!=axis)
         {
@@ -866,12 +867,15 @@
             const bool rpm    = axis&kAxisRpmMode;  // 04
             const bool rf     = axis&kAxisRf;       // 20
+            const bool err    = axis&kAxisError;    // 40
             const bool power  = axis&kAxisHasPower; // 80
 
             ostringstream out;
             if (ready)  out << " DKC-Ready";
-            if (move)   out << " Moving";
+            if (move && !err)
+                        out << " Moving";
             if (rpm)    out << " RpmMode";
             if (rf)     out << " RF";
             if (power)  out << " PowerOn";
+            if (err)    out << " ERROR";
 
             Info("New axis status["+string(node==kNodeAz?"Az":"Zd")+"]:"+out.str());
@@ -2916,9 +2920,9 @@
 
         // Conenction commands
-        T::AddEvent("DISCONNECT", State::kConnected)
+        T::AddEvent("DISCONNECT", State::kConnected, State::kUnavailable)
             (bind(&StateMachineDrive::Disconnect, this))
             ("disconnect from ethernet");
 
-        T::AddEvent("RECONNECT", "O", State::kDisconnected, State::kConnected)
+        T::AddEvent("RECONNECT", "O", State::kDisconnected, State::kConnected, State::kUnavailable)
             (bind(&StateMachineDrive::Reconnect, this, placeholders::_1))
             ("(Re)connect Ethernet connection to SPS, a new address can be given"
