diff --git a/lib/transfer.c b/lib/transfer.c
index 0a4e62543834cbaaf35234075ed556288630d3d0..9ce78c552975705a89e0b962b637a4487a094136 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -2158,8 +2158,10 @@ CURLcode Curl_pretransfersec(struct connectdata *conn)
 
   /* secondary connection */
   status = Curl_connect_host(data, &sec_conn);
-  sec_conn->data = data;
-  conn->sec_conn = sec_conn;
+  if(CURLE_OK == status) {
+    sec_conn->data = data;
+    conn->sec_conn = sec_conn;
+  }
 
   return status;
 }