diff --git a/package/dnsmasq/Makefile b/package/dnsmasq/Makefile
index cb723d528f1..7dd55af8b80 100644
--- a/package/dnsmasq/Makefile
+++ b/package/dnsmasq/Makefile
@@ -46,7 +46,6 @@ define Package/dnsmasq/install
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/src/dnsmasq $(1)/usr/sbin/
 	$(INSTALL_DIR) $(1)/etc/config
 	$(INSTALL_DATA) ./files/dhcp.conf $(1)/etc/config/dhcp
-	$(INSTALL_DATA) ./files/dnsmasq.conf $(1)/etc/dnsmasq.conf
 	$(INSTALL_DIR) $(1)/etc/init.d
 	$(INSTALL_BIN) ./files/dnsmasq.init $(1)/etc/init.d/dnsmasq
 endef
diff --git a/package/dnsmasq/files/dhcp.conf b/package/dnsmasq/files/dhcp.conf
index fb55cf8b774..4904b025340 100644
--- a/package/dnsmasq/files/dhcp.conf
+++ b/package/dnsmasq/files/dhcp.conf
@@ -1,3 +1,17 @@
+config dnsmasq
+	option domainneeded	1
+	option boguspriv	1
+	option filterwin2k	'0'  #enable for dial on demand
+	option localise_queries	1
+	option local	'/lan/'
+	option domain	'lan'
+	option expandhosts	1
+	option nonegcache	0
+	option authoritative	1
+	option readethers	1
+	option leasefile	'/tmp/dhcp.leases'
+	option resolvfile	'/tmp/resolv.conf.auto'
+
 config dhcp
 	option interface	lan
 	option start 	100
diff --git a/package/dnsmasq/files/dnsmasq.conf b/package/dnsmasq/files/dnsmasq.conf
deleted file mode 100644
index c0a1958d71b..00000000000
--- a/package/dnsmasq/files/dnsmasq.conf
+++ /dev/null
@@ -1,23 +0,0 @@
-# filter what we send upstream
-domain-needed
-bogus-priv
-# filterwin2k 			# enable for dial-on-demand
-localise-queries
-
-# allow /etc/hosts and dhcp lookups via *.lan
-local=/lan/
-domain=lan
-expand-hosts
-no-negcache
-resolv-file=/tmp/resolv.conf.auto
-
-dhcp-authoritative
-dhcp-leasefile=/tmp/dhcp.leases
-
-# use /etc/ethers for static hosts; same format as --dhcp-host
-# <hwaddr> <ipaddr>
-read-ethers
-
-# other useful options:
-# default route(s): dhcp-option=3,192.168.1.1,192.168.1.2
-#    dns server(s): dhcp-option=6,192.168.1.1,192.168.1.2
diff --git a/package/dnsmasq/files/dnsmasq.init b/package/dnsmasq/files/dnsmasq.init
index ec595afce50..9797490c471 100644
--- a/package/dnsmasq/files/dnsmasq.init
+++ b/package/dnsmasq/files/dnsmasq.init
@@ -50,17 +50,19 @@ dnsmasq() {
 	append_bool "$cfg" localise_queries "-y"
 	append_bool "$cfg" readethers "-Z"
 	append_bool "$cfg" dbus "-l"
+	append_bool "$cfg" boguspriv "-b"
+	append_bool "$cfg" expandhosts "-E"
 
 	append_parm "$cfg" dnsforwardmax "-0"
 	append_parm "$cfg" port "-p"
 	append_parm "$cfg" ednspacket_max "-P"
 	append_parm "$cfg" dhcpleasemax "-X"
-
-	config_get addnhosts "$cfg" addnhosts
-	config_get interface "$cfg" interface
-	config_get exceptinterface "$cfg" exceptinterface
-	config_get queryport "$cfg" queryport
-	config_get domain "$cfg" domain
+	append_parm "$cfg" "addnhosts" "-H"
+	append_parm "$cfg" "queryport" "-Q"
+	append_parm "$cfg" "domain" "-s"
+	append_parm "$cfg" "local" "-S"
+	append_parm "$cfg" "leasefile" "-l"
+	append_parm "$cfg" "resolvfile" "-r"
 }
 
 dhcp_subscrid_add() {