diff --git a/tools/Master.cpp b/tools/Master.cpp
index ece48214adb4876d1c9ce48791446e616c6e37f7..4a98cdbb4cb8f12269e6dbd0bf85ffbe38f10ec2 100644
--- a/tools/Master.cpp
+++ b/tools/Master.cpp
@@ -1577,6 +1577,24 @@ void Master::generateSlaveXml(uint16_t slavePosition)
         << hex << setfill('0') << setw(8) << slave.revision_number
         << "\"/>" << endl;
 
+    if (strlen(slave.name)) {
+        cout
+            << "          <Name><![CDATA["
+            << slave.name
+            << "]]></Name>" << endl;
+    }
+
+    for (i = 0; i < slave.sync_count; i++) {
+        getSync(&sync, slavePosition, i);
+
+        cout
+            << "          <Sm Enable=\"" << dec << (unsigned int) sync.enable
+            << "\" StartAddress=\"" << sync.physical_start_address
+            << "\" ControlByte=\"" << (unsigned int) sync.control_register
+            << "\" DefaultSize=\"" << sync.default_size
+            << "\" />" << endl;
+    }
+
     for (i = 0; i < slave.sync_count; i++) {
         getSync(&sync, slavePosition, i);