diff -r 5a770085161c -r 880c6153101f master/fsm_slave.c --- a/master/fsm_slave.c Wed Sep 19 11:52:58 2007 +0000 +++ b/master/fsm_slave.c Wed Sep 19 17:17:45 2007 +0000 @@ -595,7 +595,8 @@ if (ec_fsm_change_exec(&fsm->fsm_change)) return; if (!ec_fsm_change_success(&fsm->fsm_change)) { - slave->error_flag = 1; + if (!fsm->fsm_change.spontaneous_change) + slave->error_flag = 1; fsm->state = ec_fsm_slave_state_error; return; } @@ -799,7 +800,8 @@ if (ec_fsm_change_exec(&fsm->fsm_change)) return; if (!ec_fsm_change_success(&fsm->fsm_change)) { - slave->error_flag = 1; + if (!fsm->fsm_change.spontaneous_change) + slave->error_flag = 1; fsm->state = ec_fsm_slave_state_error; return; } @@ -1077,7 +1079,8 @@ if (ec_fsm_change_exec(&fsm->fsm_change)) return; if (!ec_fsm_change_success(&fsm->fsm_change)) { - fsm->slave->error_flag = 1; + if (!fsm->fsm_change.spontaneous_change) + fsm->slave->error_flag = 1; fsm->state = ec_fsm_slave_state_error; return; } @@ -1117,7 +1120,8 @@ if (ec_fsm_change_exec(&fsm->fsm_change)) return; if (!ec_fsm_change_success(&fsm->fsm_change)) { - slave->error_flag = 1; + if (!fsm->fsm_change.spontaneous_change) + slave->error_flag = 1; fsm->state = ec_fsm_slave_state_error; return; }