diff --git a/master/master.c b/master/master.c
index e09046013b0e11447d11c768359658db095498d8..b825f77bfba2b4a5bdc48a4fdc4cbb10d1c29679 100644
--- a/master/master.c
+++ b/master/master.c
@@ -1315,9 +1315,6 @@ int ecrt_master_activate(ec_master_t *master)
         domain_offset += domain->data_size;
     }
 
-    master->allow_config = 1; // request the current configuration
-    master->allow_scan = 1; // allow re-scanning on topology change
-
     // restart EoE process and master thread with new locking
 #ifdef EC_EOE
     ec_master_eoe_stop(master);
@@ -1337,10 +1334,12 @@ int ecrt_master_activate(ec_master_t *master)
         EC_ERR("Failed to start master thread!\n");
         return -1;
     }
-
 #ifdef EC_EOE
     ec_master_eoe_start(master);
 #endif
+
+    master->allow_config = 1; // request the current configuration
+    master->allow_scan = 1; // allow re-scanning on topology change
     return 0;
 }