diff -aur NetworkManager-1.0.8-orig/src/dnsmasq-manager/nm-dnsmasq-manager.c NetworkManager-1.0.8/src/dnsmasq-manager/nm-dnsmasq-manager.c
--- NetworkManager-1.0.8-orig/src/dnsmasq-manager/nm-dnsmasq-manager.c	2015-11-23 19:08:13.000000000 +0400
+++ NetworkManager-1.0.8/src/dnsmasq-manager/nm-dnsmasq-manager.c	2015-11-30 21:20:41.862112671 +0400
@@ -35,6 +35,9 @@
 #include "nm-utils.h"
 #include "NetworkManagerUtils.h"
 
+#define CONFDIR NMCONFDIR "/dnsmasq.shared.d"
+#define CONFFILE NMCONFDIR "/dnsmasq.shared.conf"
+
 typedef struct {
 	char *iface;
 	char *pidfile;
@@ -236,13 +239,7 @@
 		nm_cmd_line_add_string (cmd, "--log-queries");
 	}
 
-	/* dnsmasq may read from it's default config file location, which if that
-	 * location is a valid config file, it will combine with the options here
-	 * and cause undesirable side-effects.  Like sending bogus IP addresses
-	 * as the gateway or whatever.  So tell dnsmasq not to use any config file
-	 * at all.
-	 */
-	nm_cmd_line_add_string (cmd, "--conf-file");
+	nm_cmd_line_add_string (cmd, "--conf-file=" CONFFILE);
 
 	nm_cmd_line_add_string (cmd, "--no-hosts");
 	nm_cmd_line_add_string (cmd, "--keep-in-foreground");
@@ -288,6 +285,10 @@
 
 	nm_cmd_line_add_string (cmd, "--dhcp-lease-max=50");
 
+	if (g_file_test (CONFDIR, G_FILE_TEST_IS_DIR)) {
+		nm_cmd_line_add_string (cmd, "--conf-dir=" CONFDIR);
+	}
+
 	s = g_string_new ("--pid-file=");
 	g_string_append (s, pidfile);
 	nm_cmd_line_add_string (cmd, s->str);
