diff --git a/scapy/layers/dhcp.py b/scapy/layers/dhcp.py
index 8572fe9c1be7691ca339a3b2d8bd5104335b35a4..3b4b55266b46fd463c1adce4c01152a8c2db4be4 100644
--- a/scapy/layers/dhcp.py
+++ b/scapy/layers/dhcp.py
@@ -4,7 +4,7 @@
 ## This program is published under a GPLv2 license
 
 """
-DHCP (Dynamic Host Configuration Protocol) d BOOTP
+DHCP (Dynamic Host Configuration Protocol) and BOOTP
 """
 
 from collections import Iterable
@@ -286,6 +286,7 @@ bind_layers( UDP,           BOOTP,         dport=68, sport=67)
 bind_bottom_up( UDP, BOOTP, dport=67, sport=67)
 bind_layers( BOOTP,         DHCP,          options='c\x82Sc')
 
+@conf.commands.register
 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")
diff --git a/test/regression.uts b/test/regression.uts
index 413295ae63a21bdd1218a78af5437710cd900bbb..bbfbe33f6c518ce9ac632b0ab001797927b0f97b 100644
--- a/test/regression.uts
+++ b/test/regression.uts
@@ -7620,3 +7620,28 @@ SCTPChunkSACK in p and p[SCTP].chksum == 0x3b01d404 and p[SCTPChunkSACK].gap_ack
 
 = SCTP - answers
 (IP()/SCTP()).answers(IP()/SCTP()) == True
+
+############
+############
++ DHCP
+
+= BOOTP - misc
+BOOTP().answers(BOOTP()) == True
+
+import random
+random.seed(0x2807)
+str(RandDHCPOptions()) == "[('WWW_server', '90.219.239.175')]"
+
+value = ("hostname", "scapy")
+dof = DHCPOptionsField("options", value)
+dof.i2repr("", value) == '[hostname scapy]'
+dof.i2m("", value) == '\x0cscapy'
+
+
+= DHCP - build
+s = str(IP()/UDP()/BOOTP(chaddr="00:01:02:03:04:05")/DHCP(options=[("message-type","discover"),"end"]))
+s == 'E\x00\x01\x10\x00\x01\x00\x00@\x11{\xda\x7f\x00\x00\x01\x7f\x00\x00\x01\x00C\x00D\x00\xfcf\xea\x01\x01\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0000:01:02:03:04:0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00c\x82Sc5\x01\x01\xff'
+
+= DHCP - dissection
+p = IP(s)
+DHCP in p and p[DHCP].options[0] == ('message-type', 1)