diff --git a/src/ex_getln.c b/src/ex_getln.c
index c003748..702b63d 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -2225,7 +2225,9 @@
 
 		    ignore_drag_release = TRUE;
 		    putcmdline('^', TRUE);
+		    no_reduce_keys = TRUE;  //  don't merge modifyOtherKeys
 		    c = get_literal();	    // get next (two) character(s)
+		    no_reduce_keys = FALSE;
 		    do_abbr = FALSE;	    // don't do abbreviation now
 		    extra_char = NUL;
 		    // may need to remove ^ when composing char was typed
diff --git a/src/getchar.c b/src/getchar.c
index de814cc..fcee7dd 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -1858,15 +1858,10 @@
 		c = (*mb_ptr2char)(buf);
 	    }
 
-	    if (!no_reduce_keys)
+	    if (vgetc_char == 0)
 	    {
-		// A modifier was not used for a mapping, apply it to ASCII
-		// keys.  Shift would already have been applied.
-		// Remember the character and mod_mask from before, in some
-		// cases they are put back in the typeahead buffer.
 		vgetc_mod_mask = mod_mask;
 		vgetc_char = c;
-		c = merge_modifyOtherKeys(c, &mod_mask);
 	    }
 
 	    break;
@@ -2274,17 +2269,39 @@
 	tp = typebuf.tb_buf + typebuf.tb_off + offset;
 	if (tp[0] == K_SPECIAL && tp[1] == KS_MODIFIER)
 	{
+	    // A modifier was not used for a mapping, apply it to ASCII keys.
+	    // Shift would already have been applied.
 	    int modifier = tp[2];
-	    int new_c = merge_modifyOtherKeys(tp[3], &modifier);
+	    int	c = tp[3];
+	    int new_c = merge_modifyOtherKeys(c, &modifier);
 
-	    if (new_c != tp[3] && modifier == 0)
+	    if (new_c != c)
 	    {
 		char_u	new_string[MB_MAXBYTES];
-		int	len = mb_char2bytes(new_c, new_string);
+		int	len;
 
-		if (put_string_in_typebuf(offset, 4, new_string, len,
+		if (offset == 0)
+		{
+		    // At the start: remember the character and mod_mask before
+		    // merging, in some cases, e.g. at the hit-return prompt,
+		    // they are put back in the typeahead buffer.
+		    vgetc_char = c;
+		    vgetc_mod_mask = tp[2];
+		}
+		len = mb_char2bytes(new_c, new_string);
+		if (modifier == 0)
+		{
+		    if (put_string_in_typebuf(offset, 4, new_string, len,
 							   NULL, 0, 0) == FAIL)
 		    return -1;
+		}
+		else
+		{
+		    tp[2] = modifier;
+		    if (put_string_in_typebuf(offset + 3, 1, new_string, len,
+							   NULL, 0, 0) == FAIL)
+		    return -1;
+		}
 		return len;
 	    }
 	}
@@ -2559,7 +2576,7 @@
 
 	    // If no termcode matched, try to include the modifier into the
 	    // key.  This for when modifyOtherKeys is working.
-	    if (keylen == 0)
+	    if (keylen == 0 && !no_reduce_keys)
 		keylen = check_simplify_modifier(max_mlen + 1);
 
 	    // When getting a partial match, but the last characters were not
diff --git a/src/version.c b/src/version.c
index 8bd7b8d..3620745 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    919,
+/**/
     918,
 /**/
     917,
