diff --git a/src/getchar.c b/src/getchar.c
index 2fa68a7..e2474be 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -1743,11 +1743,9 @@
 		--allow_keys;
 	    }
 
-	    // Get two extra bytes for special keys
+	    // Get two extra bytes for special keys, handle modifiers.
 	    if (c == K_SPECIAL
-#if defined(FEAT_GUI) || defined(MSWIN)
-		    // GUI codes start with CSI; MS-Windows sends mouse scroll
-		    // events with CSI.
+#ifdef FEAT_GUI
 		    || c == CSI
 #endif
 	       )
@@ -2520,32 +2518,12 @@
 	    && State != MODE_CONFIRM
 	    && !at_ins_compl_key())
     {
-#if defined(FEAT_GUI) || defined(MSWIN)
-	if (tb_c1 == CSI
-# if !defined(MSWIN)
-		&& gui.in_use
-# endif
-		&& typebuf.tb_len >= 2
-		&& (typebuf.tb_buf[typebuf.tb_off + 1] == KS_MODIFIER
-# if defined(MSWIN)
-		    || (typebuf.tb_len >= 3
-#  ifdef FEAT_GUI
-		      && !gui.in_use
-#  endif
-		      && typebuf.tb_buf[typebuf.tb_off + 1] == KS_EXTRA
-		      && (typebuf.tb_buf[typebuf.tb_off + 2] == KE_MOUSEUP
-			|| typebuf.tb_buf[typebuf.tb_off + 2] == KE_MOUSEDOWN
-			|| typebuf.tb_buf[typebuf.tb_off + 2] == KE_MOUSELEFT
-			|| typebuf.tb_buf[typebuf.tb_off + 2] == KE_MOUSERIGHT)
-		       )
-# endif
-		   )
-	   )
+#ifdef FEAT_GUI
+	if (gui.in_use && tb_c1 == CSI && typebuf.tb_len >= 2
+		&& typebuf.tb_buf[typebuf.tb_off + 1] == KS_MODIFIER)
 	{
 	    // The GUI code sends CSI KS_MODIFIER {flags}, but mappings expect
 	    // K_SPECIAL KS_MODIFIER {flags}.
-	    // MS-Windows sends mouse scroll events CSI KS_EXTRA {what}, but
-	    // non-GUI mappings expect K_SPECIAL KS_EXTRA {what}.
 	    tb_c1 = K_SPECIAL;
 	}
 #endif
diff --git a/src/os_win32.c b/src/os_win32.c
index 36051f4..ead50e1 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -2047,7 +2047,8 @@
 	    {
 		if (modifiers > 0)
 		{
-		    typeahead[typeaheadlen++] = CSI;
+		    // use K_SPECIAL instead of CSI to make mappings work
+		    typeahead[typeaheadlen++] = K_SPECIAL;
 		    typeahead[typeaheadlen++] = KS_MODIFIER;
 		    typeahead[typeaheadlen++] = modifiers;
 		}
diff --git a/src/term.c b/src/term.c
index 61c2311..3b2c3c0 100644
--- a/src/term.c
+++ b/src/term.c
@@ -5125,7 +5125,7 @@
 			    csi_len, offset, buf, bufsize, buflen);
     }
 
-    // Key without modifier (bad Kitty may send this):
+    // Key without modifier (Kitty sends this for Esc):
     //	{lead}{key}u
     else if (argc == 1 && trail == 'u')
     {
@@ -5456,6 +5456,23 @@
 	}
 	else
 #endif // FEAT_GUI
+#ifdef MSWIN
+	    if (len >= 3 && tp[0] == CSI && tp[1] == KS_EXTRA
+		    && (tp[2] == KE_MOUSEUP
+			|| tp[2] == KE_MOUSEDOWN
+			|| tp[2] == KE_MOUSELEFT
+			|| tp[2] == KE_MOUSERIGHT))
+	{
+	    // MS-Windows console sends mouse scroll events encoded:
+	    // - CSI
+	    // - KS_EXTRA
+	    // - {KE_MOUSE[UP|DOWN|LEFT|RIGHT]}
+	    slen = 3;
+	    key_name[0] = tp[1];
+	    key_name[1] = tp[2];
+	}
+	else
+#endif
 	{
 	    int  mouse_index_found = -1;
 
diff --git a/src/version.c b/src/version.c
index 4a2ad77..3258736 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    918,
+/**/
     917,
 /**/
     916,
