diff --git a/TODO b/TODO
index 998f1bdc3245257601694e21d8ff733383b1043f..1538936f56bff3400a52dd2e513ad6b43f7477df 100644
--- a/TODO
+++ b/TODO
@@ -9,7 +9,6 @@ $Id$
 * Release 1.3:
   - Remove addressing scheme "X:Y".
   - Remove ugly ec_slave_is_coupler().
-  - Reset topology_change_pending on successful validation.
   - Dynamic creation of EoE handlers.
 
 * Future features:
diff --git a/master/fsm_master.c b/master/fsm_master.c
index 8beacbeca82883e4ed842e0e0b33d7a2774da46b..47ebe7aa946b37a69bfc70e04ff9d94b31668063 100644
--- a/master/fsm_master.c
+++ b/master/fsm_master.c
@@ -209,6 +209,7 @@ void ec_fsm_master_state_broadcast(ec_fsm_master_t *fsm /**< master state machin
     if (fsm->topology_change_pending &&
             master->mode == EC_MASTER_MODE_IDLE) {
         fsm->topology_change_pending = 0;
+        fsm->tainted = 0;
 
         ec_master_eoe_stop(master);
         ec_master_destroy_slaves(master);
@@ -621,6 +622,7 @@ void ec_fsm_master_state_validate_product(ec_fsm_master_t *fsm /**< master state
 
     // have all states been validated?
     if (slave->list.next == &fsm->master->slaves) {
+        fsm->topology_change_pending = 0;
         fsm->tainted = 0;
         fsm->slave = list_entry(fsm->master->slaves.next, ec_slave_t, list);
         // start writing addresses to offline slaves