diff --git a/lib/hostip.c b/lib/hostip.c
index f8c2be63fe754c6adbc9215bc0ac07007b03cd1e..1a5711f5570a5daa01dcf4403d0b2454e6ffad24 100644
--- a/lib/hostip.c
+++ b/lib/hostip.c
@@ -524,7 +524,7 @@ int Curl_resolv_timeout(struct connectdata *conn,
                         const char *hostname,
                         int port,
                         struct Curl_dns_entry **entry,
-                        volatile long timeout)
+                        long timeoutms)
 {
 #ifdef USE_ALARM_TIMEOUT 
 #ifdef HAVE_SIGACTION
@@ -536,7 +536,7 @@ int Curl_resolv_timeout(struct connectdata *conn,
   void (*keep_sigact)(int);       /* store the old handler here */
 #endif /* HAVE_SIGNAL */
 #endif /* HAVE_SIGACTION */
-
+  volatile long timeout;
   unsigned int prev_alarm=0;
   struct SessionHandle *data = conn->data;
 #endif /* USE_ALARM_TIMEOUT */
@@ -548,6 +548,8 @@ int Curl_resolv_timeout(struct connectdata *conn,
   if (data->set.no_signal)
     /* Ignore the timeout when signals are disabled */
     timeout = 0;
+  else
+    timeout = timeoutms;
 
   if(timeout && timeout < 1000)
     /* The alarm() function only provides integer second resolution, so if
diff --git a/lib/hostip.h b/lib/hostip.h
index 08545d94ed475a8950604bea976a714e71da8839..593d2c5dc86684132161e18d88c2830e86f08db6 100644
--- a/lib/hostip.h
+++ b/lib/hostip.h
@@ -166,7 +166,7 @@ int Curl_resolv(struct connectdata *conn, const char *hostname,
                 int port, struct Curl_dns_entry **dnsentry);
 int Curl_resolv_timeout(struct connectdata *conn, const char *hostname,
                         int port, struct Curl_dns_entry **dnsentry,
-                        volatile long timeout);
+                        long timeoutms);
 
 /*
  * Curl_ipvalid() checks what CURL_IPRESOLVE_* requirements that might've