diff -up c-ares-1.6.0/ares_init.c~ c-ares-1.6.0/ares_init.c
--- c-ares-1.6.0/ares_init.c~	2009-07-27 18:40:40.000000000 -0700
+++ c-ares-1.6.0/ares_init.c	2009-07-27 18:47:17.000000000 -0700
@@ -198,12 +198,15 @@ int ares_init_options(ares_channel *chan
       DEBUGF(fprintf(stderr, "Error: init_by_resolv_conf failed: %s\n",
                      ares_strerror(status)));
   }
-  if (status == ARES_SUCCESS) {
-    status = init_by_defaults(channel);
-    if (status != ARES_SUCCESS)
-      DEBUGF(fprintf(stderr, "Error: init_by_defaults failed: %s\n",
-                     ares_strerror(status)));
-  }
+
+  /*
+   * No matter what failed or succeeded, seed defaults to provide
+   * useful behavior for things that we missed.
+   */
+  status = init_by_defaults(channel);
+  if (status != ARES_SUCCESS)
+    DEBUGF(fprintf(stderr, "Error: init_by_defaults failed: %s\n",
+                   ares_strerror(status)));
 
   /* Generate random key */
 
