diff -Naur ethercat-hg/master/fsm_master.c ethercat-hg-sdoinfo/master/fsm_master.c
--- ethercat-hg/master/fsm_master.c	2014-06-20 14:49:28.624815100 +0200
+++ ethercat-hg-sdoinfo/master/fsm_master.c	2014-07-01 12:32:51.254490800 +0200
@@ -532,13 +532,6 @@
         return;
     }
 
-    // enable processing of requests
-    for (slave = master->slaves;
-            slave < master->slaves + master->slave_count;
-            slave++) {
-        ec_fsm_slave_set_ready(&slave->fsm);
-    }
-
     // check, if slaves have an SDO dictionary to read out.
     for (slave = master->slaves;
             slave < master->slaves + master->slave_count;
@@ -550,7 +543,16 @@
                 || slave->current_state == EC_SLAVE_STATE_INIT
                 || slave->current_state == EC_SLAVE_STATE_UNKNOWN
                 || jiffies - slave->jiffies_preop < EC_WAIT_SDO_DICT * HZ
-                ) continue;
+                ) {
+            if (!(slave->sii.mailbox_protocols & EC_MBOX_COE)
+                    || (slave->sii.has_general
+                        && !slave->sii.coe_details.enable_sdo_info)
+                    ){
+                // SDO info not supported. Enable processing of requests
+        	    ec_fsm_slave_set_ready(&slave->fsm);
+            }
+        	continue;
+        }
 
         EC_SLAVE_DBG(slave, 1, "Fetching SDO dictionary.\n");
 
@@ -1249,6 +1251,9 @@
                sdo_count, entry_count);
     }
 
+    // enable processing of requests
+    ec_fsm_slave_set_ready(&slave->fsm);
+
     // attach pdo names from dictionary
     ec_slave_attach_pdo_names(slave);
 
