diff --git a/master/fsm_coe.c b/master/fsm_coe.c
index 978690b692a1762a8e3a8aeb3064aff1cc1dea5f..6f5b216d5d1701d70c4edeb7a1ca2e939500d977 100644
--- a/master/fsm_coe.c
+++ b/master/fsm_coe.c
@@ -1526,6 +1526,7 @@ void ec_fsm_coe_up_prepare_segment_request(
     EC_WRITE_U16(data, 0x2 << 12); // SDO request
     EC_WRITE_U8 (data + 2, (fsm->toggle << 4 // toggle
                 | 0x3 << 5)); // upload segment request
+    memset(data + 3, 0x00, 7);
 
     if (fsm->slave->master->debug_level) {
         EC_DBG("Upload segment request:\n");
diff --git a/master/mailbox.c b/master/mailbox.c
index 71ba6e80ad257988e172da8a7ef2922e577f4ae8..57de8a4ee93ef575e70dfdec3ffbd9819865fc25 100644
--- a/master/mailbox.c
+++ b/master/mailbox.c
@@ -71,7 +71,6 @@ uint8_t *ec_slave_mbox_prepare_send(const ec_slave_t *slave, /**< slave */
         return ERR_PTR(-EOVERFLOW);
     }
 
-    ec_datagram_zero(datagram);
     ret = ec_datagram_fpwr(datagram, slave->station_address,
             slave->configured_rx_mailbox_offset,
             slave->configured_rx_mailbox_size);
diff --git a/master/voe_handler.c b/master/voe_handler.c
index 3f62de182b84d5c4c330bca74da88e30ebeae612..b9271f74456399063488693e72a8f3b6903840ad 100644
--- a/master/voe_handler.c
+++ b/master/voe_handler.c
@@ -234,6 +234,7 @@ void ec_voe_handler_state_write_start(ec_voe_handler_t *voe)
 
     EC_WRITE_U32(data,     voe->vendor_id);
     EC_WRITE_U16(data + 4, voe->vendor_type);
+    /* data already in datagram */
 
     voe->retries = EC_FSM_RETRIES;
     voe->jiffies_start = jiffies;