diff --git a/master/sdo_entry.c b/master/sdo_entry.c
index 8e80f379d367a18bfcc3cd594ee1339c6474d1f7..ef137dfe85eea5f9cac79df11366b8be3c54ee8b 100644
--- a/master/sdo_entry.c
+++ b/master/sdo_entry.c
@@ -185,6 +185,15 @@ ssize_t ec_sdo_entry_format_data(
     off_t off = 0;
     unsigned int i;
 
+    if (request->data_size != entry->bit_length) {
+        EC_ERR("Dictionary size of Sdo entry 0x%04X:%02X (%u bit) does not "
+                "match size of uploaded data (%u byte)!\n", entry->sdo->index,
+                entry->subindex, entry->bit_length, request->data_size);
+        EC_DBG("Uploaded data:\n");
+        ec_print_data(request->data, request->data_size);
+        return -EIO;
+    }
+        
     if (entry->data_type == 0x0002) { // int8
         int8_t value;
         if (entry->bit_length != 8)