diff --git a/src/channel.c b/src/channel.c
index 4eedb03..094b58f 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -628,9 +628,8 @@
      */
     while (TRUE)
     {
-#ifndef WIN32
-	long elapsed_msec = 0;
-#endif
+	long	elapsed_msec = 0;
+	int	waitnow;
 
 	if (sd >= 0)
 	    sock_close(sd);
@@ -688,7 +687,7 @@
 	}
 
 	/* If connect() didn't finish then try using select() to wait for the
-	 * connection to be made. */
+	 * connection to be made. For Win32 always use select() to wait. */
 #ifndef WIN32
 	if (errno != ECONNREFUSED)
 #endif
@@ -702,19 +701,22 @@
 	    struct timeval	start_tv;
 	    struct timeval	end_tv;
 #endif
+	    /* Limit the waittime to 50 msec.  If it doesn't work within this
+	     * time we close the socket and try creating it again. */
+	    waitnow = waittime > 50 ? 50 : waittime;
 
 	    FD_ZERO(&rfds);
 	    FD_SET(sd, &rfds);
 	    FD_ZERO(&wfds);
 	    FD_SET(sd, &wfds);
 
-	    tv.tv_sec = waittime / 1000;
-	    tv.tv_usec = (waittime % 1000) * 1000;
+	    tv.tv_sec = waitnow / 1000;
+	    tv.tv_usec = (waitnow % 1000) * 1000;
 #ifndef WIN32
 	    gettimeofday(&start_tv, NULL);
 #endif
 	    ch_logn(channel,
-		    "Waiting for connection (waittime %d msec)...", waittime);
+		    "Waiting for connection (waiting %d msec)...", waitnow);
 	    ret = select((int)sd + 1, &rfds, &wfds, NULL, &tv);
 
 	    if (ret < 0)
@@ -729,10 +731,16 @@
 	    }
 
 #ifdef WIN32
-	    /* On Win32: select() is expected to work and wait for up to the
-	     * waittime for the socket to be open. */
+	    /* On Win32: select() is expected to work and wait for up to
+	     * "waitnow" msec for the socket to be open. */
 	    if (FD_ISSET(sd, &wfds))
 		break;
+	    elapsed_msec = waitnow;
+	    if (waittime > 1 && elapsed_msec < waittime)
+	    {
+		waittime -= elapsed_msec;
+		continue;
+	    }
 #else
 	    /* On Linux-like systems: See socket(7) for the behavior
 	     * After putting the socket in non-blocking mode, connect() will
@@ -778,17 +786,20 @@
 	{
 	    /* The port isn't ready but we also didn't get an error.
 	     * This happens when the server didn't open the socket
-	     * yet.  Wait a bit and try again. */
-	    mch_delay(waittime < 50 ? (long)waittime : 50L, TRUE);
-	    ui_breakcheck();
+	     * yet.  Select() may return early, wait until the remaining
+	     * "waitnow"  and try again. */
+	    waitnow -= elapsed_msec;
+	    waittime -= elapsed_msec;
+	    if (waitnow > 0)
+	    {
+		mch_delay((long)waitnow, TRUE);
+		ui_breakcheck();
+		waittime -= waitnow;
+	    }
 	    if (!got_int)
 	    {
-		/* reduce the waittime by the elapsed time and the 50
-		 * msec delay (or a bit more) */
-		waittime -= elapsed_msec;
-		if (waittime > 50)
-		    waittime -= 50;
-		else
+		if (waittime <= 0)
+		    /* give it one more try */
 		    waittime = 1;
 		continue;
 	    }
diff --git a/src/version.c b/src/version.c
index e98a2ae..af4ebc0 100644
--- a/src/version.c
+++ b/src/version.c
@@ -744,6 +744,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1527,
+/**/
     1526,
 /**/
     1525,
