diff --git a/clatd.c b/clatd.c
index 17a3548..74aabcb 100644
--- a/clatd.c
+++ b/clatd.c
@@ -109,10 +109,10 @@
   }
 }
 
-/* function: got_sigterm
- * signal handler: mark it time to clean up
+/* function: stop_loop
+ * signal handler: stop the event loop
  */
-void got_sigterm(int signal) {
+void stop_loop(int signal) {
   running = 0;
 }
 
@@ -474,6 +474,7 @@
     printf("I need an interface\n");
     exit(1);
   }
+  logmsg(ANDROID_LOG_INFO,"Starting clat on %s", uplink_interface);
 
   // open the tunnel device before dropping privs
   tunnel.fd6 = tun_open();
@@ -502,10 +503,9 @@
   // run under a regular user
   drop_root();
 
-  if(signal(SIGTERM, got_sigterm) == SIG_ERR) {
-    logmsg(ANDROID_LOG_FATAL, "sigterm handler failed: %s", strerror(errno));
-    exit(1);
-  }
+  // When run from netd, the environment variable ANDROID_DNS_MODE is set to
+  // "local", but that only works for the netd process itself.
+  unsetenv("ANDROID_DNS_MODE");
 
   configure_interface(uplink_interface, plat_prefix, &tunnel);
 
@@ -514,9 +514,15 @@
   set_default_ipv6_route(uplink_interface);
   set_forwarding(forwarding_fd,"1\n");
 
-  event_loop(&tunnel); // event_loop returns if someone sets the tun interface down manually
+  // Loop until someone sends us a signal or brings down the tun interface.
+  if(signal(SIGTERM, stop_loop) == SIG_ERR) {
+    logmsg(ANDROID_LOG_FATAL, "sigterm handler failed: %s", strerror(errno));
+    exit(1);
+  }
+  event_loop(&tunnel);
 
   set_forwarding(forwarding_fd,"0\n");
+  logmsg(ANDROID_LOG_INFO,"Shutting down clat on %s", uplink_interface);
 
   return 0;
 }
diff --git a/dns64.c b/dns64.c
index ab662c7..b139fe4 100644
--- a/dns64.c
+++ b/dns64.c
@@ -38,6 +38,9 @@
   int status, plat_addr_set, ipv4_records, ipv6_records;
   struct in6_addr plat_addr, this_plat_addr;
   struct sockaddr_in6 *this_addr;
+  char plat_addr_str[INET6_ADDRSTRLEN];
+
+  logmsg(ANDROID_LOG_INFO, "Detecting NAT64 prefix from DNS...");
 
   result = NULL;
   plat_addr_set = 0;
@@ -71,12 +74,12 @@
       continue;
     }
 
+    inet_ntop(AF_INET6, &plat_addr, plat_addr_str, sizeof(plat_addr_str));
     if(!IN6_ARE_ADDR_EQUAL(&plat_addr, &this_plat_addr)) {
-      char plat_addr_str[INET6_ADDRSTRLEN], this_plat_addr_str[INET6_ADDRSTRLEN];
+      char this_plat_addr_str[INET6_ADDRSTRLEN];
+      inet_ntop(AF_INET6, &this_plat_addr, this_plat_addr_str, sizeof(this_plat_addr_str));
       logmsg(ANDROID_LOG_ERROR,"plat_prefix/two different plat addrs = %s,%s",
-          inet_ntop(AF_INET6, &plat_addr, plat_addr_str, sizeof(plat_addr_str)),
-          inet_ntop(AF_INET6, &this_plat_addr, this_plat_addr_str, sizeof(this_plat_addr_str))
-          );
+             plat_addr_str,this_plat_addr_str);
     }
   }
   if(result != NULL) {
@@ -86,6 +89,8 @@
     logmsg(ANDROID_LOG_WARN,"plat_prefix/no dns64 detected\n");
     return -1;
   }
+
+  logmsg(ANDROID_LOG_INFO, "Detected NAT64 prefix %s/96", plat_addr_str);
   *prefix = plat_addr;
   return 1;
 }
