diff --git a/ethernet.h b/ethernet.h
index 36efa789fb3faad7ad08e8612970f052d92e6a26..3f1dd4e491ba3cc77d637d9ec3e81609b68a909d 100644
--- a/ethernet.h
+++ b/ethernet.h
@@ -58,20 +58,20 @@ struct eth_rmon_stats {
 	uint16_t vlanid;                /* 0..4094 */
 	enum rmon_status status;
 	struct {
-		uint32_t drop_events;
-		unsigned long bytes;
-		unsigned long packets;
-		unsigned long bcast_packets;
-		unsigned long mcast_packets;
-		uint32_t crc_err_packets;
-		uint32_t under_sz_packets;
-		uint32_t over_sz_packets;
-		unsigned long packets_64bytes;
-		unsigned long packets_65to127bytes;
-		unsigned long packets_128to255bytes;
-		unsigned long packets_256to511bytes;
-		unsigned long packets_512to1023bytes;
-		unsigned long packets_1024to1518bytes;
+		uint64_t drop_events;
+		uint64_t bytes;
+		uint64_t packets;
+		uint64_t bcast_packets;
+		uint64_t mcast_packets;
+		uint64_t crc_err_packets;
+		uint64_t under_sz_packets;
+		uint64_t over_sz_packets;
+		uint64_t packets_64bytes;
+		uint64_t packets_65to127bytes;
+		uint64_t packets_128to255bytes;
+		uint64_t packets_256to511bytes;
+		uint64_t packets_512to1023bytes;
+		uint64_t packets_1024to1518bytes;
 	} tx, rx;
 };