diff --git a/include/ecrt.h b/include/ecrt.h
index b1c14f5ca899fe69abb7a542bb0c716ab1e26c1b..a5cc7b747663150f98d5f9418074e03314b57be0 100644
--- a/include/ecrt.h
+++ b/include/ecrt.h
@@ -161,7 +161,7 @@ int ecrt_slave_conf_sdo32(ec_slave_t *slave, uint16_t sdo_index,
                           uint8_t sdo_subindex, uint32_t value);
 
 int ecrt_slave_pdo_size(ec_slave_t *slave, uint16_t pdo_index,
-                        uint8_t pdo_subindex, size_t size);
+                        uint8_t pdo_subindex, size_t size); // deprecated
 
 /******************************************************************************
  *  Bitwise read/write macros
diff --git a/master/fsm.c b/master/fsm.c
index c13ba1b2438174ddff6ecce83bfd68c6dde46599..c507a421e329e773151c9a32efd1051b1f8e1f37 100644
--- a/master/fsm.c
+++ b/master/fsm.c
@@ -492,7 +492,7 @@ void ec_fsm_master_read_states(ec_fsm_t *fsm /**< finite state machine */)
     if (datagram->working_counter != 1) {
         if (slave->online) {
             slave->online = 0;
-            if (master->debug_level)
+            if (slave->master->debug_level)
                 EC_DBG("Slave %i: offline.\n", slave->ring_position);
         }
         ec_fsm_master_action_next_slave_state(fsm);
@@ -505,7 +505,7 @@ void ec_fsm_master_read_states(ec_fsm_t *fsm /**< finite state machine */)
         slave->online = 1;
         slave->error_flag = 0; // clear error flag
         slave->current_state = new_state;
-        if (master->debug_level) {
+        if (slave->master->debug_level) {
             char cur_state[EC_STATE_STRING_SIZE];
             ec_state_string(slave->current_state, cur_state);
             EC_DBG("Slave %i: online (%s).\n",
@@ -513,7 +513,7 @@ void ec_fsm_master_read_states(ec_fsm_t *fsm /**< finite state machine */)
         }
     }
     else if (new_state != slave->current_state) {
-        if (master->debug_level) {
+        if (slave->master->debug_level) {
             char old_state[EC_STATE_STRING_SIZE],
                 cur_state[EC_STATE_STRING_SIZE];
             ec_state_string(slave->current_state, old_state);
@@ -1188,8 +1188,9 @@ void ec_fsm_slavescan_eeprom_data(ec_fsm_t *fsm /**< finite state machine */)
                     goto end;
                 break;
             default:
-                EC_WARN("Unknown category type 0x%04X in slave %i.\n",
-                        cat_type, slave->ring_position);
+                if (fsm->master->debug_level)
+                    EC_WARN("Unknown category type 0x%04X in slave %i.\n",
+                            cat_type, slave->ring_position);
         }
 
         cat_word += cat_size + 2;
diff --git a/master/fsm_coe.c b/master/fsm_coe.c
index bcd203d3e80758011883b50f7be2e4fddfc79665..0c6e1f034fba915b1a5097bf1d22f810aa840380 100644
--- a/master/fsm_coe.c
+++ b/master/fsm_coe.c
@@ -395,8 +395,9 @@ void ec_fsm_coe_dict_response(ec_fsm_coe_t *fsm /**< finite state machine */)
     for (i = 0; i < sdo_count; i++) {
         sdo_index = EC_READ_U16(data + 8 + i * 2);
         if (!sdo_index) {
-            EC_WARN("SDO dictionary of slave %i contains index 0x0000.\n",
-                    slave->ring_position);
+            if (slave->master->debug_level)
+                EC_WARN("SDO dictionary of slave %i contains index 0x0000.\n",
+                        slave->ring_position);
             continue;
         }
 
@@ -1191,7 +1192,8 @@ void ec_fsm_coe_up_response(ec_fsm_coe_t *fsm /**< finite state machine */)
     expedited = EC_READ_U8(data + 2) & 0x02;
 
     if (expedited) {
-        EC_WARN("Received expedited response upon normal request!\n");
+        if (master->debug_level)
+            EC_WARN("Received expedited response upon normal request!\n");
 
         size_specified = EC_READ_U8(data + 2) & 0x01;
         if (size_specified) {
diff --git a/master/master.c b/master/master.c
index 3f7dff93cd74de0c3d9adb112bfa05984d3ab65f..c503411e5452cbf062f08edee8a6cc35988d40e3 100644
--- a/master/master.c
+++ b/master/master.c
@@ -1031,8 +1031,10 @@ void ec_master_eoe_start(ec_master_t *master /**< EtherCAT master */)
         }
 
         if (!found) {
-            EC_WARN("No EoE handler for slave %i!\n", slave->ring_position);
-            ec_slave_request_state(slave, EC_SLAVE_STATE_INIT);
+            if (master->debug_level)
+                EC_WARN("No EoE handler for slave %i!\n",
+                        slave->ring_position);
+            ec_slave_request_state(slave, EC_SLAVE_STATE_PREOP);
         }
     }
 
diff --git a/master/slave.c b/master/slave.c
index 0dda0754218fb22255a3d37449161614855efaf2..3c664acea29559474b90acb9b25aa4d900bbf74a 100644
--- a/master/slave.c
+++ b/master/slave.c
@@ -496,7 +496,9 @@ int ec_slave_locate_string(ec_slave_t *slave, /**< EtherCAT slave */
         return 0;
     }
 
-    EC_WARN("String %i not found in slave %i.\n", index, slave->ring_position);
+    if (slave->master->debug_level)
+        EC_WARN("String %i not found in slave %i.\n",
+                index, slave->ring_position);
 
     err_string = "(string not found)";