diff --git a/master/device.c b/master/device.c
index 2b1ce7f2c8e8c21713ce8e9da20ba3e3637a3adb..aec5e53eb4c119ceb0d89017c030160f7db51577 100644
--- a/master/device.c
+++ b/master/device.c
@@ -288,17 +288,17 @@ void ec_device_send(ec_device_t *device, /**< EtherCAT device */
         ec_print_data(skb->data + ETH_HLEN, size);
     }
 
+    // start sending
+    if (device->dev->hard_start_xmit(skb, device->dev) == NETDEV_TX_OK) {
+		device->tx_count++;
 #ifdef EC_DEBUG_IF
-    ec_debug_send(&device->dbg, skb->data, ETH_HLEN + size);
+		ec_debug_send(&device->dbg, skb->data, ETH_HLEN + size);
 #endif
 #ifdef EC_DEBUG_RING
-    ec_device_debug_ring_append(
-            device, TX, skb->data + ETH_HLEN, size);
+		ec_device_debug_ring_append(
+				device, TX, skb->data + ETH_HLEN, size);
 #endif
-
-    // start sending
-    device->dev->hard_start_xmit(skb, device->dev);
-    device->tx_count++;
+	}
 }
 
 /*****************************************************************************/