diff --git a/src/search.c b/src/search.c
index 40928c8..cd4e8fb 100644
--- a/src/search.c
+++ b/src/search.c
@@ -4489,7 +4489,7 @@
 #endif /* FEAT_TEXTOBJ */
 
 #if defined(FEAT_VISUAL) || defined(PROTO)
-static int is_zerowidth __ARGS((char_u *pattern));
+static int is_one_char __ARGS((char_u *pattern));
 
 /*
  * Find next search match under cursor, cursor at end.
@@ -4510,7 +4510,7 @@
     char_u	old_p_ws = p_ws;
     int		flags = 0;
     pos_T	save_VIsual;
-    int		zerowidth = FALSE;
+    int		one_char;
 
     /* wrapping should not occur */
     p_ws = FALSE;
@@ -4540,9 +4540,9 @@
 	orig_pos = pos = start_pos = curwin->w_cursor;
 
     /* Is the pattern is zero-width? */
-    zerowidth = is_zerowidth(spats[last_idx].pat);
-    if (zerowidth == -1)
-	return FAIL;
+    one_char = is_one_char(spats[last_idx].pat);
+    if (one_char == -1)
+	return FAIL;  /* invalid pattern */
 
     /*
      * The trick is to first search backwards and then search forward again,
@@ -4557,7 +4557,7 @@
 	    dir = !i;
 
 	flags = 0;
-	if (!dir && !zerowidth)
+	if (!dir && !one_char)
 	    flags = SEARCH_END;
 
 	result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
@@ -4598,7 +4598,7 @@
 
     /* move to match, except for zero-width matches, in which case, we are
      * already on the next match */
-    if (!zerowidth)
+    if (!one_char)
 	result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
 	    spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
 
@@ -4645,11 +4645,11 @@
 }
 
 /*
- * Check if the pattern is zero-width.
+ * Check if the pattern is one character or zero-width.
  * Returns TRUE, FALSE or -1 for failure.
  */
     static int
-is_zerowidth(pattern)
+is_one_char(pattern)
     char_u	*pattern;
 {
     regmmatch_T	regmatch;
@@ -4677,6 +4677,9 @@
 	    result = (nmatched != 0
 		&& regmatch.startpos[0].lnum == regmatch.endpos[0].lnum
 		&& regmatch.startpos[0].col == regmatch.endpos[0].col);
+
+	if (!result && incl(&pos) == 0 && pos.col == regmatch.endpos[0].col)
+	    result  = TRUE;
     }
 
     called_emsg |= save_called_emsg;
diff --git a/src/testdir/test53.in b/src/testdir/test53.in
index c1d5061..2cc7d10 100644
--- a/src/testdir/test53.in
+++ b/src/testdir/test53.in
@@ -44,7 +44,8 @@
 vlgnd
 /mother
 :set selection=exclusive
-$cgNmongoose
+$cgNmongoose/i
+cgnj
 :/^start:/,/^end:/wq! test.out
 ENDTEST
 
@@ -73,4 +74,5 @@
 delete first and last chars
 uniquepattern uniquepattern
 my very excellent mother just served us nachos
+for (i=0; i<=10; i++)
 end:
diff --git a/src/testdir/test53.ok b/src/testdir/test53.ok
index 179b1b2..40031ed 100644
--- a/src/testdir/test53.ok
+++ b/src/testdir/test53.ok
@@ -26,4 +26,5 @@
 elete first and last char
  uniquepattern
 my very excellent mongoose just served us nachos
+for (j=0; i<=10; i++)
 end:
diff --git a/src/version.c b/src/version.c
index 99c54b7..2c126d6 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1275,
+/**/
     1274,
 /**/
     1273,
