patch 7.4.1230
Problem:    Win32: opening a channel may hang.  Not checking for messages
            while waiting for characters.
Solution:   Add a zero timeout.  Call parse_queued_messages(). (Yasuhiro
            Matsumoto)
diff --git a/src/os_win32.c b/src/os_win32.c
index 9fa806e..fb13671 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -1461,10 +1461,12 @@
      */
     for (;;)
     {
+#ifdef MESSAGE_QUEUE
+	parse_queued_messages();
+#endif
 #ifdef FEAT_MZSCHEME
 	mzvim_check_threads();
 #endif
-
 #ifdef FEAT_CLIENTSERVER
 	serverProcessPendingMessages();
 #endif
@@ -1474,7 +1476,11 @@
 	maxfd = channel_select_setup(-1, &rfds);
 	if (maxfd >= 0)
 	{
-	    ret = select(maxfd + 1, &rfds, NULL, NULL, NULL);
+	    struct timeval  tv;
+
+	    tv.tv_sec = 0;
+	    tv.tv_usec = 0;
+	    ret = select(maxfd + 1, &rfds, NULL, NULL, &tv);
 	    if (ret > 0 && channel_select_check(ret, &rfds) > 0)
 		return TRUE;
 	}