updated for version 7.0049
diff --git a/src/ex_getln.c b/src/ex_getln.c
index e17e671..a7dfd9a 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -996,8 +996,13 @@
case ESC: /* get here if p_wc != ESC or when ESC typed twice */
case Ctrl_C:
- /* In exmode it doesn't make sense to return. */
- if (exmode_active)
+ /* In exmode it doesn't make sense to return. Except when
+ * ":normal" runs out of characters. */
+ if (exmode_active
+#ifdef FEAT_EX_EXTRA
+ && (ex_normal_busy == 0 || typebuf.tb_len > 0)
+#endif
+ )
goto cmdline_not_changed;
gotesc = TRUE; /* will free ccline.cmdbuff after