diff --git a/lib/url.c b/lib/url.c
index 0aed7b44b6a52592f6787afcf39848d5028ae443..e3d89ebe6c10cb8b12b2de9bb8a3090efb6cdd1a 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -4599,6 +4599,8 @@ static void reuse_conn(struct connectdata *old_conn,
   else
     free(old_conn->host.rawalloc); /* free the newly allocated name buffer */
 
+  strcpy(conn->ip_addr_str, old_conn->ip_addr_str);
+
   /* re-use init */
   conn->bits.reuse = TRUE; /* yes, we're re-using here */
 
@@ -4925,12 +4927,6 @@ static CURLcode create_conn(struct SessionHandle *data,
     infof(data, "Re-using existing connection! (#%ld) with host %s\n",
           conn->connectindex,
           conn->proxy.name?conn->proxy.dispname:conn->host.dispname);
-    /* copy this IP address to the common buffer for the easy handle so that
-       the address can actually survice the removal of this connection. strcpy
-       is safe since the target buffer is big enough to hold the largest
-       possible IP address */
-    strcpy(data->info.ip, conn->ip_addr_str);
-
   }
   else {
     /*