diff --git a/package/dnsmasq/files/dnsmasq.init b/package/dnsmasq/files/dnsmasq.init
index c39e58417f33c38f4e67c6197ca1e016b79888c1..cd5697c7729b9fd93d9963f1071a0b73ef89f9a0 100644
--- a/package/dnsmasq/files/dnsmasq.init
+++ b/package/dnsmasq/files/dnsmasq.init
@@ -2,6 +2,7 @@
 # Copyright (C) 2007 OpenWrt.org
 
 START=60
+DNS_SERVERS=""
 
 dhcp_calc() {
 	local ip="$1"
@@ -173,6 +174,11 @@ dhcp_add() {
 	config_get ifname "$net" ifname
 	[ -n "$ifname" ] || return 0
 
+	config_get dnsserver "$net" dns
+	[ -n "$dnsserver" ] && {
+		DNS_SERVERS="$DNS_SERVERS $dnsserver"
+	}
+
 	append_bool "$cfg" ignore "-I $ifname"
 
 	config_get proto "$net" proto
@@ -234,10 +240,10 @@ start() {
 
 	/usr/sbin/dnsmasq $args && {
 		rm -f /tmp/resolv.conf
-		cat > /tmp/resolv.conf <<EOF
-nameserver 127.0.0.1
-search lan
-EOF
+		DNS_SERVERS="$DNS_SERVERS 127.0.0.1"
+		for DNS_SERVER in $DNS_SERVERS ; do
+			echo "nameserver $DNS_SERVER" >> /tmp/resolv.conf
+		done	
 	}
 }