diff --git a/econet/ecnt_prvt.c b/econet/ecnt_prvt.c
index 5e21ab9a1119546587f76d2d66fcef447d2f4920..b754f9ac3c18ce587c755cd9c72f5bf6f3533370 100644
--- a/econet/ecnt_prvt.c
+++ b/econet/ecnt_prvt.c
@@ -170,7 +170,7 @@ static void fill_stats_tx_from_gdma(struct eth_stats *stats, struct eth_rmon_sta
 }
 
 static void fill_stats_rx_from_gdma(struct eth_stats *stats, struct eth_rmon_stats *rstats,
-				    ECNT_FEMGR_GDMA2_RX_STATISTICS *rx_stats)
+				    ECNT_FEMGR_GDMA2_RX_STATISTICS *rx_stats, bool oversize_is_ok)
 {
 	if (rx_stats == NULL)
 		return;
@@ -178,7 +178,7 @@ static void fill_stats_rx_from_gdma(struct eth_stats *stats, struct eth_rmon_sta
 	if (stats != NULL) {
 		stats->rx_bytes = rx_stats->frame_len;
 		stats->rx_packets = rx_stats->frame_cnt;
-		stats->rx_errors = rx_stats->crc + rx_stats->jabber + rx_stats->fragment + rx_stats->undersize + rx_stats->oversize;
+		stats->rx_errors = rx_stats->crc + rx_stats->jabber + rx_stats->fragment + rx_stats->undersize + (oversize_is_ok == false ? rx_stats->oversize : 0);
 		stats->rx_ucast_packets = rx_stats->frame_cnt - (rx_stats->broadcast + rx_stats->multicast);
 		stats->rx_bcast_packets = rx_stats->broadcast;
 		stats->rx_mcast_packets = rx_stats->multicast;
@@ -246,7 +246,7 @@ int hsgmii_lan_prvt_get_port_statistics(char *ifname, struct eth_stats *stats, s
 			fill_stats_tx_from_gdma(stats, rstats, &tx_stats);
 		}
 		if (!fe_lib_get_hsgmii_rx_statistics(&rx_stats, hsgmii_index)) {
-			fill_stats_rx_from_gdma(stats, rstats, &rx_stats);
+			fill_stats_rx_from_gdma(stats, rstats, &rx_stats, false);
 		}
 
 		if (rstats != NULL) {
@@ -286,7 +286,7 @@ int ae_wan_prvt_get_port_statistics(struct eth_stats *stats, struct eth_rmon_sta
 			fill_stats_tx_from_gdma(stats, rstats, &tx_stats);
 		}
 		if (!fe_lib_get_hsgmii_rx_statistics(&rx_stats, hsgmii_index)) {
-			fill_stats_rx_from_gdma(stats, rstats, &rx_stats);
+			fill_stats_rx_from_gdma(stats, rstats, &rx_stats, false);
 		}
 
 		if (rstats != NULL) {
@@ -299,7 +299,7 @@ int ae_wan_prvt_get_port_statistics(struct eth_stats *stats, struct eth_rmon_sta
 		}
 
 		if (!fe_lib_get_gdma2_rx_statistics(&rx_stats)) {
-			fill_stats_rx_from_gdma(stats, rstats, &rx_stats);
+			fill_stats_rx_from_gdma(stats, rstats, &rx_stats, false);
 		}
 
 		if (rstats != NULL) {
@@ -327,7 +327,7 @@ int pon_prvt_get_port_statistics(struct eth_stats *stats, struct eth_rmon_stats
 	}
 
 	if (!fe_lib_get_gdma2_rx_statistics(&rx_stats)) {
-		fill_stats_rx_from_gdma(stats, rstats, &rx_stats);
+		fill_stats_rx_from_gdma(stats, rstats, &rx_stats, true);
 	}
 
 	return 0;