diff --git a/README b/README
index efd4693..fb2529a 100644
--- a/README
+++ b/README
@@ -901,6 +901,29 @@
 		4th and following
 		BOOTP requests:		delay 0 ... 8 sec
 
+- DHCP Advanced Options:
+		CONFIG_BOOTP_MASK
+
+		You can fine tune the DHCP functionality by adding
+		these flags to the CONFIG_BOOTP_MASK define:
+
+		CONFIG_BOOTP_DNS2 - If a DHCP client requests the DNS
+		serverip from a DHCP server, it is possible that more
+		than one DNS serverip is offered to the client.
+		If CONFIG_BOOTP_DNS2 is enabled, the secondary DNS
+		serverip will be stored in the additional environment
+		variable "dnsip2". The first DNS serverip is always
+		stored in the variable "dnsip", when CONFIG_BOOTP_DNS
+		is added to the CONFIG_BOOTP_MASK.
+
+		CONFIG_BOOTP_SEND_HOSTNAME - Some DHCP servers are capable
+		to do a dynamic update of a DNS server. To do this, they
+		need the hostname of the DHCP requester.
+		If CONFIG_BOOP_SEND_HOSTNAME is added to the
+		CONFIG_BOOTP_MASK, the content of the "hostname"
+		environment variable is passed as option 12 to
+		the DHCP server.
+
 - Status LED:	CONFIG_STATUS_LED
 
 		Several configurations allow to display the current
@@ -2118,6 +2141,7 @@
 
   bootfile	- see above
   dnsip		- IP address of your Domain Name Server
+  dnsip2	- IP address of your secondary Domain Name Server
   gatewayip	- IP address of the Gateway (Router) to use
   hostname	- Target hostname
   ipaddr	- see above
diff --git a/common/cmd_net.c b/common/cmd_net.c
index 4d4a1ea..e9b54d2 100644
--- a/common/cmd_net.c
+++ b/common/cmd_net.c
@@ -116,6 +116,13 @@
 	setenv("dnsip", tmp);
     }
 
+#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS2)
+    if (NetOurDNS2IP) {
+	    ip_to_string (NetOurDNS2IP, tmp);
+	    setenv("dnsip2", tmp);
+    }
+#endif
+
     if (NetOurNISDomain[0])
 	setenv("domain", NetOurNISDomain);
 
diff --git a/include/cmd_confdefs.h b/include/cmd_confdefs.h
index 8b8b0f5..d7f1fd4 100644
--- a/include/cmd_confdefs.h
+++ b/include/cmd_confdefs.h
@@ -148,6 +148,8 @@
 #define CONFIG_BOOTP_BOOTPATH		0x00000010
 #define CONFIG_BOOTP_BOOTFILESIZE	0x00000020
 #define CONFIG_BOOTP_DNS		0x00000040
+#define CONFIG_BOOTP_DNS2		0x00000080
+#define CONFIG_BOOTP_SEND_HOSTNAME      0x00000100
 
 #define CONFIG_BOOTP_VENDOREX		0x80000000
 
diff --git a/include/configs/CPCI405.h b/include/configs/CPCI405.h
index 4be94ed..b877043 100644
--- a/include/configs/CPCI405.h
+++ b/include/configs/CPCI405.h
@@ -69,12 +69,10 @@
 #define CONFIG_MII		1	/* MII PHY management		*/
 #define	CONFIG_PHY_ADDR		0	/* PHY address			*/
 
-#if 0 /* test-only */
-#define CONFIG_BOOTP_MASK	(CONFIG_BOOTP_DEFAULT |  \
-				 CONFIG_BOOTP_VENDOREX)
-#else
-#define CONFIG_BOOTP_MASK       (CONFIG_BOOTP_DEFAULT)
-#endif
+#define CONFIG_BOOTP_MASK       (CONFIG_BOOTP_DEFAULT | \
+				 CONFIG_BOOTP_DNS | \
+				 CONFIG_BOOTP_DNS2 | \
+				 CONFIG_BOOTP_SEND_HOSTNAME )
 
 #define CONFIG_COMMANDS	      ( CONFIG_CMD_DFL	| \
 				CFG_CMD_DHCP	| \
diff --git a/include/configs/CPCI4052.h b/include/configs/CPCI4052.h
index 1f9d39c..dd2fa7f 100644
--- a/include/configs/CPCI4052.h
+++ b/include/configs/CPCI4052.h
@@ -72,12 +72,10 @@
 
 #define CONFIG_RTC_M48T35A	1		/* ST Electronics M48 timekeeper */
 
-#if 0 /* test-only */
-#define CONFIG_BOOTP_MASK	(CONFIG_BOOTP_DEFAULT |  \
-				 CONFIG_BOOTP_VENDOREX)
-#else
-#define CONFIG_BOOTP_MASK       (CONFIG_BOOTP_DEFAULT)
-#endif
+#define CONFIG_BOOTP_MASK       (CONFIG_BOOTP_DEFAULT | \
+				 CONFIG_BOOTP_DNS | \
+				 CONFIG_BOOTP_DNS2 | \
+				 CONFIG_BOOTP_SEND_HOSTNAME )
 
 #define CONFIG_COMMANDS	      ( CONFIG_CMD_DFL	| \
 				CFG_CMD_DHCP	| \
diff --git a/include/configs/CPCI405AB.h b/include/configs/CPCI405AB.h
index 00adfd5..d55b51e 100644
--- a/include/configs/CPCI405AB.h
+++ b/include/configs/CPCI405AB.h
@@ -65,7 +65,10 @@
 
 #define CONFIG_RTC_M48T35A	1		/* ST Electronics M48 timekeeper */
 
-#define CONFIG_BOOTP_MASK       (CONFIG_BOOTP_DEFAULT)
+#define CONFIG_BOOTP_MASK       (CONFIG_BOOTP_DEFAULT | \
+				 CONFIG_BOOTP_DNS | \
+				 CONFIG_BOOTP_DNS2 | \
+				 CONFIG_BOOTP_SEND_HOSTNAME )
 
 #define CONFIG_COMMANDS	      ( CONFIG_CMD_DFL	| \
 				CFG_CMD_DHCP	| \
diff --git a/include/net.h b/include/net.h
index dd8d378..2d4aa94 100644
--- a/include/net.h
+++ b/include/net.h
@@ -275,6 +275,9 @@
 extern IPaddr_t		NetOurGatewayIP;	/* Our gateway IP addresse	*/
 extern IPaddr_t		NetOurSubnetMask;	/* Our subnet mask (0 = unknown)*/
 extern IPaddr_t		NetOurDNSIP;	 /* Our Domain Name Server (0 = unknown)*/
+#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS2)
+extern IPaddr_t		NetOurDNS2IP;	 /* Our 2nd Domain Name Server (0 = unknown)*/
+#endif
 extern char		NetOurNISDomain[32];	/* Our NIS domain		*/
 extern char		NetOurHostName[32];	/* Our hostname			*/
 extern char		NetOurRootPath[64];	/* Our root path		*/
diff --git a/net/bootp.c b/net/bootp.c
index 31b2243..854ca16 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -174,6 +174,11 @@
 		if (NetOurDNSIP == 0) {
 			NetCopyIP(&NetOurDNSIP, (IPaddr_t*)(ext+2));
 		}
+#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS2)
+		if ((NetOurDNS2IP == 0) && (size > 4)) {
+			NetCopyIP(&NetOurDNS2IP, (IPaddr_t*)(ext+2+4));
+		}
+#endif
 		break;
 	case 7:		/* Log server - Not yet supported		*/
 		break;
@@ -365,6 +370,9 @@
 #if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_VENDOREX)
     u8 *x;
 #endif
+#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_SEND_HOSTNAME)
+    uchar *hostname;
+#endif
 
     *e++ =  99;		/* RFC1048 Magic Cookie */
     *e++ = 130;
@@ -402,6 +410,16 @@
 	    *e++ = tmp & 0xff;
     }
 
+#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_SEND_HOSTNAME)
+    if ( (hostname = getenv("hostname")) ) {
+	    int hostnamelen = strlen(hostname);
+	    *e++ = 12;        /* Hostname */
+	    *e++ = hostnamelen;
+	    memcpy(e,hostname,hostnamelen);
+	    e += hostnamelen;
+    }
+#endif
+
 #if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_VENDOREX)
     if ((x = dhcp_vendorex_prep (e)))
 	return x - start ;
@@ -690,6 +708,11 @@
 				break;
 			case  6:
 				NetCopyIP(&NetOurDNSIP, (popt+2));
+#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS2)
+				if ( *(popt+1) > 4 ) {
+					NetCopyIP(&NetOurDNS2IP, (popt+2+4));
+				}
+#endif
 				break;
 			case 12:
 				size = truncate_sz ("Host Name",
diff --git a/net/net.c b/net/net.c
index dafcc56..a139742 100644
--- a/net/net.c
+++ b/net/net.c
@@ -84,6 +84,9 @@
 IPaddr_t	NetOurSubnetMask=0;		/* Our subnet mask (0=unknown)	*/
 IPaddr_t	NetOurGatewayIP=0;		/* Our gateways IP address	*/
 IPaddr_t	NetOurDNSIP=0;			/* Our DNS IP address		*/
+#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS2)
+IPaddr_t	NetOurDNS2IP=0;			/* Our 2nd DNS IP address	*/
+#endif
 char		NetOurNISDomain[32]={0,};	/* Our NIS domain		*/
 char		NetOurHostName[32]={0,};	/* Our hostname			*/
 char		NetOurRootPath[64]={0,};	/* Our bootpath			*/
