updated for version 7.1-270
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index d5692c2..193796f 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -3932,8 +3932,7 @@
 				curwin->w_cursor.col = 0;
 			    searchcmdlen = 0;
 			    if (!do_search(NULL, c, cmd, 1L,
-					SEARCH_HIS + SEARCH_MSG + SEARCH_START,
-					NULL))
+					       SEARCH_HIS | SEARCH_MSG, NULL))
 			    {
 				curwin->w_cursor = pos;
 				cmd = NULL;
@@ -3980,8 +3979,7 @@
 				pos.col = 0;
 			    if (searchit(curwin, curbuf, &pos,
 					*cmd == '?' ? BACKWARD : FORWARD,
-					(char_u *)"", 1L,
-					SEARCH_MSG + SEARCH_START,
+					(char_u *)"", 1L, SEARCH_MSG,
 						i, (linenr_T)0, NULL) != FAIL)
 				lnum = pos.lnum;
 			    else
diff --git a/src/search.c b/src/search.c
index 9bdd037..ff952d7 100644
--- a/src/search.c
+++ b/src/search.c
@@ -538,7 +538,10 @@
 	return FAIL;
     }
 
-    if (options & SEARCH_START)
+    /* When not accepting a match at the start position set "extra_col" to a
+     * non-zero value.  Don't do that when starting at MAXCOL, since MAXCOL +
+     * 1 is zero. */
+    if ((options & SEARCH_START) || pos->col == MAXCOL)
 	extra_col = 0;
 #ifdef FEAT_MBYTE
     /* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */
diff --git a/src/version.c b/src/version.c
index 654c5d9..bc906d4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -667,6 +667,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    270,
+/**/
     269,
 /**/
     268,