diff --git a/master/cdev.c b/master/cdev.c
index 94f0fa8f93dd819246b9505a21f0b57c5c4ee7ac..7f6dbf6efd4b81321b186902b69c190bbcb7ebf9 100644
--- a/master/cdev.c
+++ b/master/cdev.c
@@ -858,6 +858,8 @@ long eccdev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
                 }
                 data.sdo_count = ec_slave_config_sdo_count(sc);
                 data.attached = sc->slave != NULL;
+                data.operational = sc->slave &&
+                    sc->slave->current_state == EC_SLAVE_STATE_OP;
 
                 if (copy_to_user((void __user *) arg, &data, sizeof(data)))
                     retval = -EFAULT;
diff --git a/master/ioctl.h b/master/ioctl.h
index 4f3cb7ab2f7cf7d5e2eef3c632aa1dba9e78da81..deb265db679ffb6df2ba0afa9dc27959204180cb 100644
--- a/master/ioctl.h
+++ b/master/ioctl.h
@@ -296,7 +296,9 @@ typedef struct {
         uint32_t pdo_count;
     } syncs[16];
     uint32_t sdo_count;
-    uint8_t attached;
+    uint8_t attached    : 1,
+            operational : 1;
+    
 } ec_ioctl_config_t;
 
 /*****************************************************************************/
diff --git a/tools/Master.cpp b/tools/Master.cpp
index 63e72e9e8118e29791ed5f22fd2abfaad3b666c4..f23b02fa9e8b752560b99481e7a18087d8b85b9e 100644
--- a/tools/Master.cpp
+++ b/tools/Master.cpp
@@ -198,7 +198,8 @@ void Master::showConfig()
             << hex << setw(8) << config.vendor_id << endl
             << "Product code: 0x"
             << hex << setw(8) << config.product_code << endl
-            << "Attached: " << (config.attached ? "yes" : "no") << endl;
+            << "Attached: " << (config.attached ? "yes" : "no") << endl
+            << "Operational: " << (config.operational ? "yes" : "no") << endl;
 
         for (j = 0; j < 16; j++) {
             if (config.syncs[j].pdo_count) {