diff --git a/src/ex_getln.c b/src/ex_getln.c
index 52eda33..e6bb815 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -745,39 +745,35 @@
     if (is_state->did_incsearch)
     {
 	curwin->w_cursor = is_state->match_end;
-	if (!EQUAL_POS(curwin->w_cursor, is_state->search_start))
+	*c = gchar_cursor();
+	if (*c != NUL)
 	{
-	    *c = gchar_cursor();
-
 	    // If 'ignorecase' and 'smartcase' are set and the
 	    // command line has no uppercase characters, convert
 	    // the character to lowercase.
 	    if (p_ic && p_scs && !pat_has_uppercase(ccline.cmdbuff + skiplen))
 		*c = MB_TOLOWER(*c);
-	    if (*c != NUL)
+	    if (*c == firstc || vim_strchr((char_u *)(
+			       p_magic ? "\\~^$.*[" : "\\^$"), *c) != NULL)
 	    {
-		if (*c == firstc || vim_strchr((char_u *)(
-				   p_magic ? "\\~^$.*[" : "\\^$"), *c) != NULL)
-		{
-		    // put a backslash before special characters
-		    stuffcharReadbuff(*c);
-		    *c = '\\';
-		}
-		// add any composing characters
-		if (mb_char2len(*c) != mb_ptr2len(ml_get_cursor()))
-		{
-		    int save_c = *c;
-
-		    while (mb_char2len(*c) != mb_ptr2len(ml_get_cursor()))
-		    {
-			curwin->w_cursor.col += mb_char2len(*c);
-			*c = gchar_cursor();
-			stuffcharReadbuff(*c);
-		    }
-		    *c = save_c;
-		}
-		return FAIL;
+		// put a backslash before special characters
+		stuffcharReadbuff(*c);
+		*c = '\\';
 	    }
+	    // add any composing characters
+	    if (mb_char2len(*c) != mb_ptr2len(ml_get_cursor()))
+	    {
+		int save_c = *c;
+
+		while (mb_char2len(*c) != mb_ptr2len(ml_get_cursor()))
+		{
+		    curwin->w_cursor.col += mb_char2len(*c);
+		    *c = gchar_cursor();
+		    stuffcharReadbuff(*c);
+		}
+		*c = save_c;
+	    }
+	    return FAIL;
 	}
     }
     return OK;
