diff --git a/net/bootp.c b/net/bootp.c
index aefc808391ac35eebafedef81686f047dfa98037..d7852dbb447a123b5e45af89e6483b5d5c3a9a53 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -132,6 +132,8 @@ static int check_reply_packet(uchar *pkt, unsigned dest, unsigned src,
 		retval = -5;
 	else if (!bootp_match_id(net_read_u32(&bp->bp_id)))
 		retval = -6;
+	else if (memcmp(bp->bp_chaddr, net_ethaddr, HWL_ETHER) != 0)
+		retval = -7;
 
 	debug("Filtering pkt = %d\n", retval);