diff --git a/src/evalfunc.c b/src/evalfunc.c
index 9a6187b..0f99c6d 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -2472,7 +2472,17 @@
 	    if (lowlevel)
 	    {
 #ifdef USE_INPUT_BUF
-		add_to_input_buf(keys, (int)STRLEN(keys));
+		int idx;
+		int len = (int)STRLEN(keys);
+
+		for (idx = 0; idx < len; ++idx)
+		{
+		    // if a CTRL-C was typed, set got_int, similar to what
+		    // happens in fill_input_buf()
+		    if (keys[idx] == 3 && ctrl_c_interrupts && typed)
+			got_int = TRUE;
+		    add_to_input_buf(keys + idx, 1);
+		}
 #else
 		emsg(_("E980: lowlevel input not supported"));
 #endif
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 2f87ba7..c830121 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -942,15 +942,15 @@
   assert_equal('1_3_', result)
 enddef
 
-" def Test_interrupt_loop()
-"   let x = 0
-"   while 1
-"     x += 1
-"     if x == 100
-"       feedkeys("\<C-C>", 'L')
-"     endif
-"   endwhile
-" enddef
+def Test_interrupt_loop()
+  let x = 0
+  while 1
+    x += 1
+    if x == 100
+      feedkeys("\<C-C>", 'Lt')
+    endif
+  endwhile
+enddef
 
 def Test_substitute_cmd()
   new
diff --git a/src/ui.c b/src/ui.c
index 393bf91..420eb7d 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -2280,7 +2280,7 @@
     for (try = 0; try < 100; ++try)
     {
 	size_t readlen = (size_t)((INBUFLEN - inbufcount)
-			    / input_conv.vc_factor);
+						       / input_conv.vc_factor);
 #  ifdef VMS
 	len = vms_read((char *)inbuf + inbufcount, readlen);
 #  else
@@ -2344,9 +2344,12 @@
 	while (len-- > 0)
 	{
 	    /*
-	     * if a CTRL-C was typed, remove it from the buffer and set got_int
+	     * If a CTRL-C was typed, remove it from the buffer and set
+	     * got_int.  Also recognize CTRL-C with modifyOtherKeys set.
 	     */
-	    if (inbuf[inbufcount] == 3 && ctrl_c_interrupts)
+	    if (ctrl_c_interrupts && (inbuf[inbufcount] == 3
+			|| (len >= 9 && STRNCMP(inbuf + inbufcount,
+						     "\e[27;5;99~", 10) == 0)))
 	    {
 		// remove everything typed before the CTRL-C
 		mch_memmove(inbuf, inbuf + inbufcount, (size_t)(len + 1));
diff --git a/src/version.c b/src/version.c
index 1ad99cf..986a29f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    421,
+/**/
     420,
 /**/
     419,
