diff --git a/lib/url.c b/lib/url.c
index 4d39f2e..65779c8 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -5064,6 +5064,12 @@ CURLcode Curl_setup_conn(struct connectdata *conn,
 
       result = ConnectPlease(data, conn, &connected);
 
+      if(result && !conn->ip_addr) {
+        /* failure not related with authentication */
+        conn->bits.tcpconnect[FIRSTSOCKET] = FALSE;
+        return result;
+      }
+
       if(connected) {
         result = Curl_protocol_connect(conn, protocol_done);
         if(CURLE_OK == result)
