updated for version 7.4b.022
Problem:    Not waiting for a character when the tick count overflows.
Solution:   Subtract the unsigned numbers and cast to int. (Ken Takata)
diff --git a/src/os_win32.c b/src/os_win32.c
index 48cc4c5..4013353 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -1357,9 +1357,10 @@
 
 	if (msec > 0)
 	{
-	    /* If the specified wait time has passed, return. */
+	    /* If the specified wait time has passed, return.  Beware that
+	     * GetTickCount() may wrap around (overflow). */
 	    dwNow = GetTickCount();
-	    if (dwNow >= dwEndTime)
+	    if ((int)(dwNow - dwEndTime) >= 0)
 		break;
 	}
 	if (msec != 0)
diff --git a/src/version.c b/src/version.c
index 59476e5..f02bf35 100644
--- a/src/version.c
+++ b/src/version.c
@@ -728,6 +728,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    22,
+/**/
     21,
 /**/
     20,