diff --git a/master/domain.c b/master/domain.c
index 88a320d31a4e3159614ad9116efe1197a632c23e..7dfce12cc5db02fb20365ea16babd495c7c59d07 100644
--- a/master/domain.c
+++ b/master/domain.c
@@ -251,8 +251,6 @@ int ec_domain_reg_pdo_entry(ec_domain_t *domain, /**< EtherCAT domain */
 
     list_add_tail(&data_reg->list, &domain->data_regs);
 
-    ec_slave_request_state(slave, EC_SLAVE_STATE_OP);
-
     return 0;
 }
 
@@ -329,8 +327,6 @@ int ec_domain_reg_pdo_range(ec_domain_t *domain, /**< EtherCAT domain */
 
     list_add_tail(&data_reg->list, &domain->data_regs);
 
-    ec_slave_request_state(slave, EC_SLAVE_STATE_OP);
-
     return 0;
 }
 
diff --git a/master/slave.c b/master/slave.c
index 5b9a590f4b193cd2e68194d43f174929a03dd056..ea7aef9116c4fbd0d200d6a55526ad6b835147ae 100644
--- a/master/slave.c
+++ b/master/slave.c
@@ -597,6 +597,8 @@ int ec_slave_prepare_fmmu(ec_slave_t *slave, /**< EtherCAT slave */
     fmmu->logical_start_address = 0;
 
     slave->fmmu_count++;
+    
+    ec_slave_request_state(slave, EC_SLAVE_STATE_OP);
 
     return 0;
 }