diff --git a/src/channel.c b/src/channel.c
index aa478f1..d02f019 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -1582,7 +1582,7 @@
 								 && nread > 0)
 		return OK;
 	    diff = deadline - GetTickCount();
-	    if (diff < 0)
+	    if (diff <= 0)
 		break;
 	    /* Wait for 5 msec.
 	     * TODO: increase the sleep time when looping more often */
@@ -1881,17 +1881,19 @@
 	}
     return NULL;
 }
+# endif
 
+# if defined(WIN32) || defined(PROTO)
+/*
+ * Check the channels for anything that is ready to be read.
+ * The data is put in the read queue.
+ */
     void
 channel_handle_events(void)
 {
     channel_T	*channel;
     int		part;
-    static int	loop = 0;
-
-    /* Skip heavily polling */
-    if (loop++ % 2)
-	return;
+    sock_T	fd;
 
     for (channel = first_channel; channel != NULL; channel = channel->ch_next)
     {
@@ -1907,7 +1909,11 @@
 	part = PART_SOCK;
 #   endif
 #  endif
-	channel_read(channel, part, "channel_handle_events");
+	{
+	    fd = channel->ch_part[part].ch_fd;
+	    if (fd != INVALID_FD && channel_wait(channel, fd, 0) == OK)
+		channel_read(channel, part, "channel_handle_events");
+	}
     }
 }
 # endif
diff --git a/src/gui_w32.c b/src/gui_w32.c
index f3da794..3a64691 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -2248,10 +2248,6 @@
 	parse_queued_messages();
 #endif
 
-#ifdef FEAT_CHANNEL
-	channel_handle_events();
-#endif
-
 	/*
 	 * Don't use gui_mch_update() because then we will spin-lock until a
 	 * char arrives, instead we use GetMessage() to hang until an
diff --git a/src/misc2.c b/src/misc2.c
index 9cfb118..932d67e 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -6239,6 +6239,11 @@
     void
 parse_queued_messages(void)
 {
+    /* For Win32 mch_breakcheck() does not check for input, do it here. */
+# if defined(WIN32) && defined(FEAT_CHANNEL)
+    channel_handle_events();
+# endif
+
 # ifdef FEAT_NETBEANS_INTG
     /* Process the queued netbeans messages. */
     netbeans_parse_messages();
diff --git a/src/os_win32.c b/src/os_win32.c
index ae1f0d8..631f88e 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -1470,10 +1470,6 @@
 	serverProcessPendingMessages();
 #endif
 
-#ifdef FEAT_CHANNEL
-	channel_handle_events();
-#endif
-
 	if (0
 #ifdef FEAT_MOUSE
 		|| g_nMouseClick != -1
diff --git a/src/version.c b/src/version.c
index 748371f..b5f4825 100644
--- a/src/version.c
+++ b/src/version.c
@@ -748,6 +748,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1379,
+/**/
     1378,
 /**/
     1377,
