diff --git a/master/cdev.c b/master/cdev.c
index 8865a92b1b09d6d704898d19f65022a54655baab..5c97a2e535448da241de2f80384890f9fc6fd0fc 100644
--- a/master/cdev.c
+++ b/master/cdev.c
@@ -196,6 +196,9 @@ int ec_cdev_ioctl_slave(
     data.sync_count = slave->sii.sync_count;
     data.sdo_count = ec_slave_sdo_count(slave);
     data.sii_nwords = slave->sii_nwords;
+    ec_cdev_strcpy(data.group, slave->sii.group);
+    ec_cdev_strcpy(data.image, slave->sii.image);
+    ec_cdev_strcpy(data.order, slave->sii.order);
     ec_cdev_strcpy(data.name, slave->sii.name);
 
     up(&master->master_sem);
diff --git a/master/ioctl.h b/master/ioctl.h
index a170f96ca6b6685660b350a81136a56f8576f676..f5be8be10294e8775ef057f65b40bf6f0568478e 100644
--- a/master/ioctl.h
+++ b/master/ioctl.h
@@ -120,6 +120,9 @@ typedef struct {
     uint8_t sync_count;
     uint16_t sdo_count;
     uint32_t sii_nwords;
+    char group[EC_IOCTL_STRING_SIZE];
+    char image[EC_IOCTL_STRING_SIZE];
+    char order[EC_IOCTL_STRING_SIZE];
     char name[EC_IOCTL_STRING_SIZE];
 } ec_ioctl_slave_t;
 
diff --git a/tools/Master.cpp b/tools/Master.cpp
index 7219999f2e44f7f693d56dc7d22c5c49f95518c3..572ec8cf9e03cf7e4e0fda87f64b1b13b575c7e9 100644
--- a/tools/Master.cpp
+++ b/tools/Master.cpp
@@ -1625,7 +1625,10 @@ void Master::showSlave(uint16_t slavePosition)
 
     if (slave.has_general_category) {
         cout << "General:" << endl
-            << "  Name: " << slave.name << endl;
+            << "  Group: " << slave.group << endl
+            << "  Image name: " << slave.image << endl
+            << "  Order number: " << slave.order << endl
+            << "  Device name: " << slave.name << endl;
 
         if (slave.mailbox_protocols & EC_MBOX_COE) {
             cout << "  CoE details:" << endl
@@ -1684,7 +1687,7 @@ void Master::generateSlaveXml(uint16_t slavePosition)
         << hex << setfill('0') << setw(8) << slave.product_code
         << "\" RevisionNo=\"#x"
         << hex << setfill('0') << setw(8) << slave.revision_number
-        << "\"/>" << endl;
+        << "\">" << slave.order << "</Type>" << endl;
 
     if (strlen(slave.name)) {
         cout