diff --git a/lib/hostip.c b/lib/hostip.c
index ab372c40a3165f2443be32b0f417d711a45612b0..8e02e470108f4fce8fe41fe720bb9b0bd12bc7c3 100644
--- a/lib/hostip.c
+++ b/lib/hostip.c
@@ -587,8 +587,9 @@ CURLcode Curl_is_resolved(struct connectdata *conn,
   count = select(nfds, &read_fds, &write_fds, NULL,
                  (struct timeval *)&tv);
 
-  if(count)
-    ares_process(data->state.areschannel, &read_fds, &write_fds);
+  /* Call ares_process() unconditonally here, even if we simply timed out
+     above, as otherwise the ares name resolve won't timeout! */
+  ares_process(data->state.areschannel, &read_fds, &write_fds);
 
   *dns = NULL;