diff --git a/scapy/layers/dhcp.py b/scapy/layers/dhcp.py
index c6852626e355bc78efbbaba8342d94cda8a9d1ae..8f45d820f35f0cbf96d1318a2b1accc90cf466a6 100644
--- a/scapy/layers/dhcp.py
+++ b/scapy/layers/dhcp.py
@@ -252,7 +252,9 @@ class DHCP(Packet):
 
 bind_layers( UDP,           BOOTP,         dport=67, sport=68)
 bind_layers( UDP,           BOOTP,         dport=68, sport=67)
+bind_bottom_up( UDP, BOOTP, dport=67, sport=67)
 bind_layers( BOOTP,         DHCP,          options='c\x82Sc')
+
 def dhcp_request(iface=None,**kargs):
     if conf.checkIPaddr != 0:
         warning("conf.checkIPaddr is not 0, I may not be able to match the answer")