diff --git a/lib/url.c b/lib/url.c
index 7d2592bf94e94a5caebbb364eef6d3d3cd653acf..29222926e45a10e95f2c0414c6820be77e4a9d9c 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -278,6 +278,11 @@ void Curl_freeset(struct SessionHandle *data)
     data->change.referer_alloc = FALSE;
   }
   data->change.referer = NULL;
+  if(data->change.url_alloc) {
+    Curl_safefree(data->change.url);
+    data->change.url_alloc = FALSE;
+  }
+  data->change.url = NULL;
 }
 
 static CURLcode setstropt(char **charp, char *s)