diff --git a/src/normal.c b/src/normal.c
index 100aadc..f61052b 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -7995,6 +7995,7 @@
 	cap->arg = TRUE;
 	nv_visual(cap);
 	break;
+#endif /* FEAT_VISUAL */
 
     /* "gn", "gN" visually select next/previous search match
      * "gn" selects next match
@@ -8006,9 +8007,7 @@
 	if (!current_search(cap->count1, cap->nchar == 'n'))
 #endif
 	    beep_flush();
-
 	break;
-#endif /* FEAT_VISUAL */
 
     /*
      * "gj" and "gk" two new funny movement keys -- up and down
diff --git a/src/search.c b/src/search.c
index 5db1d57..5ee0e48 100644
--- a/src/search.c
+++ b/src/search.c
@@ -3397,151 +3397,6 @@
     return OK;
 }
 
-#if defined(FEAT_VISUAL) || defined(PROTO)
-/*
- * Find next search match under cursor, cursor at end.
- * Used while an operator is pending, and in Visual mode.
- * TODO: redo only works when used in operator pending mode
- */
-    int
-current_search(count, forward)
-    long	count;
-    int		forward;	/* move forward or backwards */
-{
-    pos_T	start_pos;	/* position before the pattern */
-    pos_T	orig_pos;	/* position of the cursor at beginning */
-    pos_T	pos;		/* position after the pattern */
-    int		i;
-    int		dir;
-    int		result;		/* result of various function calls */
-    char_u	old_p_ws = p_ws;
-    int		visual_active = FALSE;
-    int		flags = 0;
-    pos_T	save_VIsual;
-
-
-    /* wrapping should not occur */
-    p_ws = FALSE;
-
-    /* Correct cursor when 'selection' is exclusive */
-    if (VIsual_active && *p_sel == 'e' && lt(VIsual, curwin->w_cursor))
-	dec_cursor();
-
-    if (VIsual_active)
-    {
-	orig_pos = curwin->w_cursor;
-	save_VIsual = VIsual;
-	visual_active = TRUE;
-
-	/* just started visual selection, only one character */
-	if (equalpos(VIsual, curwin->w_cursor))
-	    visual_active = FALSE;
-
-	pos = curwin->w_cursor;
-	start_pos = VIsual;
-
-	/* make sure, searching further will extend the match */
-	if (VIsual_active)
-	{
-	    if (forward)
-		incl(&pos);
-	    else
-		decl(&pos);
-	}
-    }
-    else
-	orig_pos = pos = start_pos = curwin->w_cursor;
-
-    /*
-     * The trick is to first search backwards and then search forward again,
-     * so that a match at the current cursor position will be correctly
-     * captured.
-     */
-    for (i = 0; i < 2; i++)
-    {
-	if (i && count == 1)
-	    flags = SEARCH_START;
-
-	if (forward)
-	    dir = i;
-	else
-	    dir = !i;
-	result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
-		spats[last_idx].pat, (long) (i ? count : 1),
-		SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
-		RE_SEARCH, 0, NULL);
-
-	/* First search may fail, but then start searching from the
-	 * beginning of the file (cursor might be on the search match)
-	 * except when Visual mode is active, so that extending the visual
-	 * selection works. */
-	if (!result && i) /* not found, abort */
-	{
-	    curwin->w_cursor = orig_pos;
-	    if (VIsual_active)
-		VIsual = save_VIsual;
-	    p_ws = old_p_ws;
-	    return FAIL;
-	}
-	else if (!i && !result && !visual_active)
-	{
-	    if (forward) /* try again from start of buffer */
-	    {
-		clearpos(&pos);
-	    }
-	    else /* try again from end of buffer */
-	    {
-		/* searching backwards, so set pos to last line and col */
-		pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
-		pos.col  = STRLEN(ml_get(curwin->w_buffer->b_ml.ml_line_count));
-	    }
-	}
-
-    }
-
-    start_pos = pos;
-    flags = (forward ? SEARCH_END : 0);
-
-    /* move to match */
-    result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
-	    spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
-
-    if (!VIsual_active)
-	VIsual = start_pos;
-
-    p_ws = old_p_ws;
-    curwin->w_cursor = pos;
-    VIsual_active = TRUE;
-    VIsual_mode = 'v';
-
-    if (VIsual_active)
-    {
-	redraw_curbuf_later(INVERTED);	/* update the inversion */
-	if (*p_sel == 'e' && ltoreq(VIsual, curwin->w_cursor))
-	    inc_cursor();
-    }
-
-#ifdef FEAT_FOLDING
-    if (fdo_flags & FDO_SEARCH && KeyTyped)
-	foldOpenCursor();
-#endif
-
-    may_start_select('c');
-#ifdef FEAT_MOUSE
-    setmouse();
-#endif
-#ifdef FEAT_CLIPBOARD
-    /* Make sure the clipboard gets updated.  Needed because start and
-     * end are still the same, and the selection needs to be owned */
-    clip_star.vmode = NUL;
-#endif
-    redraw_curbuf_later(INVERTED);
-    showmode();
-
-    return OK;
-}
-#endif /* FEAT_VISUAL */
-
 /*
  * Find sentence(s) under the cursor, cursor at end.
  * When Visual active, extend it by one or more sentences.
@@ -4670,6 +4525,151 @@
 
 #endif /* FEAT_TEXTOBJ */
 
+#if defined(FEAT_VISUAL) || defined(PROTO)
+/*
+ * Find next search match under cursor, cursor at end.
+ * Used while an operator is pending, and in Visual mode.
+ * TODO: redo only works when used in operator pending mode
+ */
+    int
+current_search(count, forward)
+    long	count;
+    int		forward;	/* move forward or backwards */
+{
+    pos_T	start_pos;	/* position before the pattern */
+    pos_T	orig_pos;	/* position of the cursor at beginning */
+    pos_T	pos;		/* position after the pattern */
+    int		i;
+    int		dir;
+    int		result;		/* result of various function calls */
+    char_u	old_p_ws = p_ws;
+    int		visual_active = FALSE;
+    int		flags = 0;
+    pos_T	save_VIsual;
+
+
+    /* wrapping should not occur */
+    p_ws = FALSE;
+
+    /* Correct cursor when 'selection' is exclusive */
+    if (VIsual_active && *p_sel == 'e' && lt(VIsual, curwin->w_cursor))
+	dec_cursor();
+
+    if (VIsual_active)
+    {
+	orig_pos = curwin->w_cursor;
+	save_VIsual = VIsual;
+	visual_active = TRUE;
+
+	/* just started visual selection, only one character */
+	if (equalpos(VIsual, curwin->w_cursor))
+	    visual_active = FALSE;
+
+	pos = curwin->w_cursor;
+	start_pos = VIsual;
+
+	/* make sure, searching further will extend the match */
+	if (VIsual_active)
+	{
+	    if (forward)
+		incl(&pos);
+	    else
+		decl(&pos);
+	}
+    }
+    else
+	orig_pos = pos = start_pos = curwin->w_cursor;
+
+    /*
+     * The trick is to first search backwards and then search forward again,
+     * so that a match at the current cursor position will be correctly
+     * captured.
+     */
+    for (i = 0; i < 2; i++)
+    {
+	if (i && count == 1)
+	    flags = SEARCH_START;
+
+	if (forward)
+	    dir = i;
+	else
+	    dir = !i;
+	result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD),
+		spats[last_idx].pat, (long) (i ? count : 1),
+		SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END),
+		RE_SEARCH, 0, NULL);
+
+	/* First search may fail, but then start searching from the
+	 * beginning of the file (cursor might be on the search match)
+	 * except when Visual mode is active, so that extending the visual
+	 * selection works. */
+	if (!result && i) /* not found, abort */
+	{
+	    curwin->w_cursor = orig_pos;
+	    if (VIsual_active)
+		VIsual = save_VIsual;
+	    p_ws = old_p_ws;
+	    return FAIL;
+	}
+	else if (!i && !result && !visual_active)
+	{
+	    if (forward) /* try again from start of buffer */
+	    {
+		clearpos(&pos);
+	    }
+	    else /* try again from end of buffer */
+	    {
+		/* searching backwards, so set pos to last line and col */
+		pos.lnum = curwin->w_buffer->b_ml.ml_line_count;
+		pos.col  = STRLEN(ml_get(curwin->w_buffer->b_ml.ml_line_count));
+	    }
+	}
+
+    }
+
+    start_pos = pos;
+    flags = (forward ? SEARCH_END : 0);
+
+    /* move to match */
+    result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD),
+	    spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL);
+
+    if (!VIsual_active)
+	VIsual = start_pos;
+
+    p_ws = old_p_ws;
+    curwin->w_cursor = pos;
+    VIsual_active = TRUE;
+    VIsual_mode = 'v';
+
+    if (VIsual_active)
+    {
+	redraw_curbuf_later(INVERTED);	/* update the inversion */
+	if (*p_sel == 'e' && ltoreq(VIsual, curwin->w_cursor))
+	    inc_cursor();
+    }
+
+#ifdef FEAT_FOLDING
+    if (fdo_flags & FDO_SEARCH && KeyTyped)
+	foldOpenCursor();
+#endif
+
+    may_start_select('c');
+#ifdef FEAT_MOUSE
+    setmouse();
+#endif
+#ifdef FEAT_CLIPBOARD
+    /* Make sure the clipboard gets updated.  Needed because start and
+     * end are still the same, and the selection needs to be owned */
+    clip_star.vmode = NUL;
+#endif
+    redraw_curbuf_later(INVERTED);
+    showmode();
+
+    return OK;
+}
+#endif /* FEAT_VISUAL */
+
 #if defined(FEAT_LISP) || defined(FEAT_CINDENT) || defined(FEAT_TEXTOBJ) \
 	|| defined(PROTO)
 /*
diff --git a/src/version.c b/src/version.c
index f3b1435..94a2b5c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -715,6 +715,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    618,
+/**/
     617,
 /**/
     616,
