diff -r 8e0bab31fddd -r 8c7e674aa5d6 master/slave_config.c --- a/master/slave_config.c Tue Dec 04 12:22:38 2012 +0100 +++ b/master/slave_config.c Tue Dec 04 12:23:43 2012 +0100 @@ -268,7 +268,18 @@ ) { if (sc->slave) { + ec_reg_request_t *reg; + sc->slave->config = NULL; + + // invalidate processing register request + list_for_each_entry(reg, &sc->reg_requests, list) { + if (sc->slave->fsm.reg_request == reg) { + sc->slave->fsm.reg_request = NULL; + break; + } + } + sc->slave = NULL; } }