diff --git a/examples/udhcp/udhcpd.conf b/examples/udhcp/udhcpd.conf
index 6550cab..1e05435 100644
--- a/examples/udhcp/udhcpd.conf
+++ b/examples/udhcp/udhcpd.conf
@@ -8,8 +8,8 @@
 # The interface that udhcpd will use
 interface	eth0
 
-# The maximim number of leases (includes addresses reserved
-# by OFFER's, DECLINE's, and ARP conficts). Will be corrected
+# The maximum number of leases (includes addresses reserved
+# by OFFER's, DECLINE's, and ARP conflicts). Will be corrected
 # if it's bigger than IP lease block, but it ok to make it
 # smaller than lease block.
 #max_leases	254
@@ -24,7 +24,7 @@
 #decline_time	3600
 
 # The amount of time that an IP will be reserved
-# if an ARP conflct occurs (seconds).
+# if an ARP conflict occurs (seconds).
 #conflict_time	3600
 
 # How long an offered address is reserved (seconds).
@@ -40,7 +40,7 @@
 # The location of the pid file
 #pidfile	/var/run/udhcpd.pid
 
-# Everytime udhcpd writes a leases file, the below script will be called.
+# Every time udhcpd writes a leases file, the below script will be called.
 #notify_file			# default: no script
 #notify_file	dumpleases	# useful for debugging
 
@@ -49,7 +49,7 @@
 #sname		zorak			#default: none
 #boot_file	/var/nfs_root		#default: none
 
-# The remainer of options are DHCP options and can be specifed with the
+# The remainder of options are DHCP options and can be specified with the
 # keyword 'opt' or 'option'. If an option can take multiple items, such
 # as the dns option, they can be listed on the same line, or multiple
 # lines. The only option with a default is 'lease'.
@@ -58,7 +58,7 @@
 option	subnet	255.255.255.0
 opt	router	192.168.10.2
 opt	wins	192.168.10.10
-option	dns	129.219.13.81	# appened to above DNS servers for a total of 3
+option	dns	129.219.13.81	# appended to above DNS servers for a total of 3
 option	domain	local
 option	lease	864000		# 10 days of seconds
 
@@ -67,10 +67,10 @@
 #opt timezone
 #opt router
 #opt timesrv
-#opt namesrv
+#opt namesrv - obsolete, disabled
 #opt dns
 #opt logsrv
-#opt cookiesrv
+#opt cookiesrv - rarely (never?) used, disabled
 #opt lprsrv
 #opt bootsize
 #opt domain
diff --git a/networking/udhcp/clientpacket.c b/networking/udhcp/clientpacket.c
index 8ccdfcc..f091d80 100644
--- a/networking/udhcp/clientpacket.c
+++ b/networking/udhcp/clientpacket.c
@@ -62,8 +62,9 @@
 	int i, len = 0;
 
 	for (i = 0; (c = dhcp_options[i].code) != 0; i++) {
-		if (((dhcp_options[i].flags & OPTION_REQ)
-		     && !client_config.no_default_options)
+		if ((   (dhcp_options[i].flags & OPTION_REQ)
+		     && !client_config.no_default_options
+		    )
 		 || (client_config.opt_mask[c >> 3] & (1 << (c & 7)))
 		) {
 			packet->options[end + OPT_DATA + len] = c;
diff --git a/networking/udhcp/options.c b/networking/udhcp/options.c
index 10ec459..6ab5708 100644
--- a/networking/udhcp/options.c
+++ b/networking/udhcp/options.c
@@ -11,17 +11,17 @@
 #include "options.h"
 
 
-/* Supported options are easily added here */
+/* Supported options are easily added here. See RFC2132 */
 const struct dhcp_option dhcp_options[] = {
 	/* flags                                    code */
 	{ OPTION_IP                   | OPTION_REQ, 0x01 }, /* DHCP_SUBNET        */
 	{ OPTION_S32                              , 0x02 }, /* DHCP_TIME_OFFSET   */
 	{ OPTION_IP | OPTION_LIST     | OPTION_REQ, 0x03 }, /* DHCP_ROUTER        */
 	{ OPTION_IP | OPTION_LIST                 , 0x04 }, /* DHCP_TIME_SERVER   */
-	{ OPTION_IP | OPTION_LIST                 , 0x05 }, /* DHCP_NAME_SERVER   */
+//	{ OPTION_IP | OPTION_LIST                 , 0x05 }, /* DHCP_NAME_SERVER   */
 	{ OPTION_IP | OPTION_LIST     | OPTION_REQ, 0x06 }, /* DHCP_DNS_SERVER    */
 	{ OPTION_IP | OPTION_LIST                 , 0x07 }, /* DHCP_LOG_SERVER    */
-	{ OPTION_IP | OPTION_LIST                 , 0x08 }, /* DHCP_COOKIE_SERVER */
+//	{ OPTION_IP | OPTION_LIST                 , 0x08 }, /* DHCP_COOKIE_SERVER */
 	{ OPTION_IP | OPTION_LIST                 , 0x09 }, /* DHCP_LPR_SERVER    */
 	{ OPTION_STRING               | OPTION_REQ, 0x0c }, /* DHCP_HOST_NAME     */
 	{ OPTION_U16                              , 0x0d }, /* DHCP_BOOT_SIZE     */
@@ -37,7 +37,7 @@
 	{ OPTION_IP | OPTION_LIST                 , 0x2c }, /* DHCP_WINS_SERVER   */
 	{ OPTION_IP                               , 0x32 }, /* DHCP_REQUESTED_IP  */
 	{ OPTION_U32                              , 0x33 }, /* DHCP_LEASE_TIME    */
-	{ OPTION_U8                               , 0x35 }, /* dhcptype           */
+	{ OPTION_U8                               , 0x35 }, /* DHCP_MESSAGE_TYPE  */
 	{ OPTION_IP                               , 0x36 }, /* DHCP_SERVER_ID     */
 	{ OPTION_STRING                           , 0x38 }, /* DHCP_MESSAGE       */
 	{ OPTION_STRING                           , 0x3C }, /* DHCP_VENDOR        */
@@ -68,10 +68,10 @@
 	"timezone" "\0"    /* DHCP_TIME_OFFSET    */
 	"router" "\0"      /* DHCP_ROUTER         */
 	"timesrv" "\0"     /* DHCP_TIME_SERVER    */
-	"namesrv" "\0"     /* DHCP_NAME_SERVER    */
+//	"namesrv" "\0"     /* DHCP_NAME_SERVER    */
 	"dns" "\0"         /* DHCP_DNS_SERVER     */
 	"logsrv" "\0"      /* DHCP_LOG_SERVER     */
-	"cookiesrv" "\0"   /* DHCP_COOKIE_SERVER  */
+//	"cookiesrv" "\0"   /* DHCP_COOKIE_SERVER  */
 	"lprsrv" "\0"      /* DHCP_LPR_SERVER     */
 	"hostname" "\0"    /* DHCP_HOST_NAME      */
 	"bootsize" "\0"    /* DHCP_BOOT_SIZE      */
diff --git a/networking/udhcp/options.h b/networking/udhcp/options.h
index aeed369..8f6ab0f 100644
--- a/networking/udhcp/options.h
+++ b/networking/udhcp/options.h
@@ -41,10 +41,10 @@
 #define DHCP_TIME_OFFSET        0x02
 #define DHCP_ROUTER             0x03
 #define DHCP_TIME_SERVER        0x04
-#define DHCP_NAME_SERVER        0x05
+//#define DHCP_NAME_SERVER      0x05 /* _really_ ancient */
 #define DHCP_DNS_SERVER         0x06
 #define DHCP_LOG_SERVER         0x07
-#define DHCP_COOKIE_SERVER      0x08
+//#define DHCP_COOKIE_SERVER    0x08 /* "quote of the day" */
 #define DHCP_LPR_SERVER         0x09
 #define DHCP_HOST_NAME          0x0c
 #define DHCP_BOOT_SIZE          0x0d
@@ -64,8 +64,8 @@
 #define DHCP_PARAM_REQ          0x37
 #define DHCP_MESSAGE            0x38
 #define DHCP_MAX_SIZE           0x39
-#define DHCP_T1                 0x3a
-#define DHCP_T2                 0x3b
+//#define DHCP_T1               0x3a
+//#define DHCP_T2               0x3b
 #define DHCP_VENDOR             0x3c
 #define DHCP_CLIENT_ID          0x3d
 #define DHCP_FQDN               0x51
diff --git a/networking/udhcp/script.c b/networking/udhcp/script.c
index a74697c..dc658ad 100644
--- a/networking/udhcp/script.c
+++ b/networking/udhcp/script.c
@@ -78,8 +78,11 @@
 			*dest++ = '/';
 			option += 4;
 			optlen = 4;
-		case OPTION_IP:	/* Works regardless of host byte order. */
+		case OPTION_IP:
 			dest += sprint_nip(dest, "", option);
+// TODO: it can be a list only if (type_p->flags & OPTION_LIST).
+// Should we bail out/warn if we see multi-ip option which is
+// not allowed to be such? For example, DHCP_BROADCAST...
 			break;
 		case OPTION_BOOLEAN:
 			dest += sprintf(dest, *option ? "yes" : "no");
