diff --git a/TODO b/TODO
index aa5edefd759e23b3674e68a0ab669b1e56718c0c..81fc8bdbbdb16addc100872589c8e9a5dbb37063 100644
--- a/TODO
+++ b/TODO
@@ -21,7 +21,6 @@ Version 1.5.0:
     - Implement ranges for slaves and domains.
 * Fix casting away constness during expected WC calculation.
 * Include SoE drive_no in ethercat tool.
-* Fix frame statistics overflow.
 
 Future issues:
 
diff --git a/master/device.c b/master/device.c
index d0b972e5ec902c96226725dbb733e6137677ae30..5963d34f56d944499fd6a5e72d54658bcc2092d3 100644
--- a/master/device.c
+++ b/master/device.c
@@ -315,7 +315,7 @@ void ec_device_send(
         u32 tx_frame_rate =
             (u32) (device->tx_count - device->last_tx_count) * 1000;
         u32 tx_byte_rate =
-            (device->tx_bytes - device->last_tx_bytes) * 1000;
+            (device->tx_bytes - device->last_tx_bytes);
         u64 loss = device->tx_count - device->rx_count;
         s32 loss_rate = (s32) (loss - device->last_loss) * 1000;
         for (i = 0; i < EC_RATE_COUNT; i++) {
diff --git a/tool/CommandMaster.cpp b/tool/CommandMaster.cpp
index fb545437f9a1bf614beaca24dffed6664c7ad4b2..390ca9925f5ccc70041273e45277db2c6e1cfecc 100644
--- a/tool/CommandMaster.cpp
+++ b/tool/CommandMaster.cpp
@@ -160,7 +160,7 @@ void CommandMaster::execute(const StringVector &args)
                     << setprecision(1) << fixed;
                 for (j = 0; j < EC_RATE_COUNT; j++) {
                     cout << setw(5)
-                        << data.devices[i].tx_byte_rates[j] / 1024000.0;
+                        << data.devices[i].tx_byte_rates[j] / 1024.0;
                     if (j < EC_RATE_COUNT - 1) {
                         cout << " ";
                     }