diff --git a/src/ex_getln.c b/src/ex_getln.c
index c6d22e5..4514540 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -450,6 +450,7 @@
 #endif
     int		next_char;
     int		use_last_pat;
+    int		did_do_incsearch = is_state->did_incsearch;
 
     // Parsing range may already set the last search pattern.
     // NOTE: must call restore_last_search_pattern() before returning!
@@ -459,6 +460,9 @@
     {
 	restore_last_search_pattern();
 	finish_incsearch_highlighting(FALSE, is_state, TRUE);
+	if (did_do_incsearch && vpeekc() == NUL)
+	    // may have skipped a redraw, do it now
+	    redrawcmd();
 	return;
     }
 
@@ -776,6 +780,35 @@
 }
 #endif
 
+#ifdef FEAT_ARABIC
+/*
+ * Return TRUE if the command line has an Arabic character at or after "start"
+ * for "len" bytes.
+ */
+    static int
+cmdline_has_arabic(int start, int len)
+{
+    int	    j;
+    int	    mb_l;
+    int	    u8c;
+    char_u  *p;
+    int	    u8cc[MAX_MCO];
+
+    if (!enc_utf8)
+	return FALSE;
+
+    for (j = start; j < start + len; j += mb_l)
+    {
+	p = ccline.cmdbuff + j;
+	u8c = utfc_ptr2char_len(p, u8cc, start + len - j);
+	mb_l = utfc_ptr2len_len(p, start + len - j);
+	if (ARABIC_CHAR(u8c))
+	    return TRUE;
+    }
+    return FALSE;
+}
+#endif
+
     void
 cmdline_init(void)
 {
@@ -2366,7 +2399,8 @@
 #ifdef FEAT_RIGHTLEFT
 	if (cmdmsg_rl
 # ifdef FEAT_ARABIC
-		|| (p_arshape && !p_tbidi && enc_utf8)
+		|| (p_arshape && !p_tbidi
+				       && cmdline_has_arabic(0, ccline.cmdlen))
 # endif
 		)
 	    /* Always redraw the whole command line to fix shaping and
@@ -3164,7 +3198,7 @@
     else
 #endif
 #ifdef FEAT_ARABIC
-	if (p_arshape && !p_tbidi && enc_utf8 && len > 0)
+	if (p_arshape && !p_tbidi && cmdline_has_arabic(start, len))
     {
 	static int	buflen = 0;
 	char_u		*p;
