diff --git a/src/bpf.c b/src/bpf.c
index fea84b1..4416b1c 100644
--- a/src/bpf.c
+++ b/src/bpf.c
@@ -401,7 +401,7 @@
    else if (msg->ifm_type == RTM_NEWADDR)
      {
        del_family = 0;
-       send_newaddr();
+       queue_event(EVENT_NEWADDR);
      }
    else if (msg->ifm_type == RTM_DELADDR)
      {
@@ -439,7 +439,7 @@
 	       of += sizeof(long) - (diff & (sizeof(long) - 1));
 	   }
        
-       send_newaddr();
+       queue_event(EVENT_NEWADDR);
      }
 }
 
diff --git a/src/config.h b/src/config.h
index ee6d218..87f8f8a 100644
--- a/src/config.h
+++ b/src/config.h
@@ -268,6 +268,7 @@
 /* Select the RFC_3542 version of the IPv6 socket API. 
    Define before netinet6/in6.h is included. */
 #define __APPLE_USE_RFC_3542 
+#define NO_IPSET
 
 #elif defined(__NetBSD__)
 #define HAVE_BSD_NETWORK
diff --git a/src/dnsmasq.c b/src/dnsmasq.c
index 5560aa9..8b375de 100644
--- a/src/dnsmasq.c
+++ b/src/dnsmasq.c
@@ -30,6 +30,7 @@
 static void async_event(int pipe, time_t now);
 static void fatal_event(struct event_desc *ev, char *msg);
 static int read_event(int fd, struct event_desc *evp, char **msg);
+static void poll_resolv(int force, int do_reload, time_t now);
 
 int main (int argc, char **argv)
 {
@@ -1037,9 +1038,9 @@
     }
 }
 
-void send_newaddr(void)
+void queue_event(int event)
 {
-  send_event(pipewrite, EVENT_NEWADDR, 0, NULL);
+  send_event(pipewrite, event, 0, NULL);
 }
 
 void send_event(int fd, int event, int data, char *msg)
@@ -1239,7 +1240,13 @@
       case EVENT_NEWADDR:
 	newaddress(now);
 	break;
-	
+
+      case EVENT_NEWROUTE:
+	resend_query();
+	/* Force re-reading resolv file right now, for luck. */
+	poll_resolv(0, 1, now);
+	break;
+
       case EVENT_TERM:
 	/* Knock all our children on the head. */
 	for (i = 0; i < MAX_PROCS; i++)
@@ -1272,7 +1279,7 @@
       }
 }
 
-void poll_resolv(int force, int do_reload, time_t now)
+static void poll_resolv(int force, int do_reload, time_t now)
 {
   struct resolvc *res, *latest;
   struct stat statbuf;
diff --git a/src/dnsmasq.h b/src/dnsmasq.h
index 2c682a3..8e103d3 100644
--- a/src/dnsmasq.h
+++ b/src/dnsmasq.h
@@ -166,6 +166,7 @@
 #define EVENT_TFTP_ERR  20
 #define EVENT_INIT      21
 #define EVENT_NEWADDR   22
+#define EVENT_NEWROUTE  23
 
 /* Exit codes. */
 #define EC_GOOD        0
@@ -1186,6 +1187,7 @@
 int send_from(int fd, int nowild, char *packet, size_t len, 
 	       union mysockaddr *to, struct all_addr *source,
 	       unsigned int iface);
+void resend_query();
 
 /* network.c */
 int indextoname(int fd, int index, char *name);
@@ -1294,11 +1296,10 @@
 int make_icmp_sock(void);
 int icmp_ping(struct in_addr addr);
 #endif
-void send_newaddr(void);
+void queue_event(int event);
 void send_alarm(time_t event, time_t now);
 void send_event(int fd, int event, int data, char *msg);
 void clear_cache_and_reload(time_t now);
-void poll_resolv(int force, int do_reload, time_t now);
 
 /* netlink.c */
 #ifdef HAVE_LINUX_NETWORK
diff --git a/src/forward.c b/src/forward.c
index 9fe6afa..1a657bb 100644
--- a/src/forward.c
+++ b/src/forward.c
@@ -2130,6 +2130,25 @@
    
   return NULL;
 }
+ 
+/* Send query packet again, if we can. */
+void resend_query()
+{
+  if (daemon->srv_save)
+    {
+      int fd;
+      
+      if (daemon->srv_save->sfd)
+	fd = daemon->srv_save->sfd->fd;
+      else if (daemon->rfd_save && daemon->rfd_save->refcount != 0)
+	fd = daemon->rfd_save->fd;
+      else
+	return;
+      
+      while(sendto(fd, daemon->packet, daemon->packet_len, 0,
+		   &daemon->srv_save->addr.sa, sa_len(&daemon->srv_save->addr)) == -1 && retry_send()); 
+    }
+}
 
 /* A server record is going away, remove references to it */
 void server_gone(struct server *server)
diff --git a/src/netlink.c b/src/netlink.c
index 022c363..cff43cc 100644
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -356,28 +356,10 @@
       struct rtmsg *rtm = NLMSG_DATA(h);
       
       if (rtm->rtm_type == RTN_UNICAST && rtm->rtm_scope == RT_SCOPE_LINK)
-	{
-  	  /* Force re-reading resolv file right now, for luck. */
-	  daemon->last_resolv = 0;
-	  
-	  if (daemon->srv_save)
-	    {
-	      int fd;
-
-	      if (daemon->srv_save->sfd)
-		fd = daemon->srv_save->sfd->fd;
-	      else if (daemon->rfd_save && daemon->rfd_save->refcount != 0)
-		fd = daemon->rfd_save->fd;
-	      else
-		return;
-	      
-	      while(sendto(fd, daemon->packet, daemon->packet_len, 0,
-			   &daemon->srv_save->addr.sa, sa_len(&daemon->srv_save->addr)) == -1 && retry_send()); 
-	    }
-	}
+	queue_event(EVENT_NEWROUTE);
     }
   else if (h->nlmsg_type == RTM_NEWADDR || h->nlmsg_type == RTM_DELADDR) 
-    send_newaddr();
+    queue_event(EVENT_NEWADDR);
 }
 #endif
 
diff --git a/src/network.c b/src/network.c
index ff9cabb..b188f50 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1559,7 +1559,6 @@
   return gotone;
 }
 
-#if defined(HAVE_LINUX_NETWORK) || defined(HAVE_BSD_NETWORK)
 /* Called when addresses are added or deleted from an interface */
 void newaddress(time_t now)
 {
@@ -1584,7 +1583,6 @@
 #endif
 }
 
-#endif
 
 
 
