diff --git a/lib/url.c b/lib/url.c
index 0836b24ab5519f94596bc8d0e0b4a1ac259a009c..865c247d5a8ced49bb3ff44141c2b352ce0efbd1 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -378,12 +378,19 @@ CURLcode Curl_setopt(struct SessionHandle *data, CURLoption option, ...)
           Curl_disconnect(data->state.connects[i]);
       }
       if(newconnects) {
+        int i;
         newptr= (struct connectdata **)
           realloc(data->state.connects,
                   sizeof(struct connectdata *) * newconnects);
         if(!newptr)
           /* we closed a few connections in vain, but so what? */
           return CURLE_OUT_OF_MEMORY;
+
+        /* nullify the newly added pointers */
+        for(i=data->state.numconnects; i<newconnects; i++) {
+          newptr[i] = NULL;
+        }
+
         data->state.connects = newptr;
         data->state.numconnects = newconnects;
       }