diff -r f859d567f94e -r 42b62867574d master/fsm_slave.c --- a/master/fsm_slave.c Fri Jan 22 10:11:58 2016 +0100 +++ b/master/fsm_slave.c Fri Jan 22 13:09:43 2016 +0100 @@ -201,6 +201,18 @@ ec_datagram_t *datagram /**< Datagram to use. */ ) { + ec_slave_t *slave = fsm->slave; + ec_sdo_request_t *req; + + if (slave->config) { + list_for_each_entry(req, &slave->config->sdo_requests, list) { + if (req->state == EC_INT_REQUEST_QUEUED || req->state == EC_INT_REQUEST_BUSY) { + EC_SLAVE_DBG(slave, 1, "Busy - processing internal SDO request!\n"); + return; + } + } + } + // Check for pending external SDO requests if (ec_fsm_slave_action_process_sdo(fsm, datagram)) { return;