diff --git a/lib/hostip.c b/lib/hostip.c
index 2e9d530ddbb5b68ff7ba2f8bf838d0b5bf418d66..05e6e8c34ba80b67d1aec81ace017a946796ba7e 100644
--- a/lib/hostip.c
+++ b/lib/hostip.c
@@ -200,6 +200,11 @@ hostcache_prune(curl_hash *hostcache, int cache_timeout, int now)
 void Curl_hostcache_prune(struct SessionHandle *data)
 {
   time_t now;
+
+  if(data->set.dns_cache_timeout == -1)
+    /* cache forever means never prune! */
+    return;
+
   if(data->share)
     Curl_share_lock(data, CURL_LOCK_DATA_DNS, CURL_LOCK_ACCESS_SINGLE);