Index: trunk/MagicSoft/Cosy/devdrv/dkc.cc
===================================================================
--- trunk/MagicSoft/Cosy/devdrv/dkc.cc	(revision 9439)
+++ trunk/MagicSoft/Cosy/devdrv/dkc.cc	(revision 9443)
@@ -15,10 +15,10 @@
 using namespace std;
 
-#define EXPERT
+//#define EXPERT
 
 Dkc::Dkc(const BYTE_t nodeid, const char *name)
     : NodeDrv(nodeid, name), fMacId(2*nodeid+1),
     fPdoPos1(0), fPdoPos2(0), fPosActive(0), fRpmActive(0),
-    fStatus(0), fStatusDKC(0), fStatusPdo3(0xff), fArmed(false),
+    fStatus(0xff), fStatusDKC(0), fStatusPdo3(0xff), fArmed(false),
     fReport(NULL),fLabel(NULL),fUpdPos(0)
 {
@@ -367,6 +367,6 @@
     // FIXME: This isn't called if the initialization isn't done completely!
     //
-
     SetRpmMode(FALSE);
+    Disarm();
 }
 
@@ -515,9 +515,7 @@
 void Dkc::HandlePDO3(const BYTE_t *data, const timeval_t &tv)
 {
-    fArmed = data[2]&0x01;
-
     if (fStatus!=data[3])
     {
-                  // data[3]&0x01; // motor not moving
+        fArmed     = data[3]&0x01; // armed status
         fPosActive = data[3]&0x02; // positioning active
         fRpmActive = data[3]&0x04; // RPM mode switched on
Index: trunk/MagicSoft/Cosy/devdrv/dkc.h
===================================================================
--- trunk/MagicSoft/Cosy/devdrv/dkc.h	(revision 9439)
+++ trunk/MagicSoft/Cosy/devdrv/dkc.h	(revision 9443)
@@ -120,4 +120,5 @@
 
     bool IsOperative() const { return fStatusPdo3==0xef; }
+    bool IsRpmActive() const { return fRpmActive; }
 
     void HandleError();
