diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 046ef3c..29270ad 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -12193,14 +12193,23 @@
 	(void)do_set(eap->arg, flags);
 }
 
-#ifdef FEAT_SEARCH_EXTRA
+#if defined(FEAT_SEARCH_EXTRA) || defined(PROTO)
+    void
+set_no_hlsearch(int flag)
+{
+    no_hlsearch = flag;
+# ifdef FEAT_EVAL
+    set_vim_var_nr(VV_HLSEARCH, !no_hlsearch && p_hls);
+# endif
+}
+
 /*
  * ":nohlsearch"
  */
     static void
 ex_nohlsearch(exarg_T *eap UNUSED)
 {
-    SET_NO_HLSEARCH(TRUE);
+    set_no_hlsearch(TRUE);
     redraw_all_later(SOME_VALID);
 }
 
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 5a1bdc0..ef8b4bd 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1976,7 +1976,7 @@
 	    if (ccline.cmdlen == 0)
 	    {
 		i = 0;
-		SET_NO_HLSEARCH(TRUE); /* turn off previous highlight */
+		set_no_hlsearch(TRUE); /* turn off previous highlight */
 		redraw_all_later(SOME_VALID);
 	    }
 	    else
@@ -2045,7 +2045,7 @@
 	    /* Disable 'hlsearch' highlighting if the pattern matches
 	     * everything. Avoids a flash when typing "foo\|". */
 	    if (empty_pattern(ccline.cmdbuff))
-		SET_NO_HLSEARCH(TRUE);
+		set_no_hlsearch(TRUE);
 
 	    validate_cursor();
 	    /* May redraw the status line to show the cursor position. */
diff --git a/src/option.c b/src/option.c
index 31aec7e..807b1e0 100644
--- a/src/option.c
+++ b/src/option.c
@@ -8359,7 +8359,7 @@
     /* when 'hlsearch' is set or reset: reset no_hlsearch */
     else if ((int *)varp == &p_hls)
     {
-	SET_NO_HLSEARCH(FALSE);
+	set_no_hlsearch(FALSE);
     }
 #endif
 
diff --git a/src/proto/ex_docmd.pro b/src/proto/ex_docmd.pro
index 0eace62..acd6b08 100644
--- a/src/proto/ex_docmd.pro
+++ b/src/proto/ex_docmd.pro
@@ -66,6 +66,7 @@
 char_u *get_behave_arg(expand_T *xp, int idx);
 char_u *get_messages_arg(expand_T *xp, int idx);
 char_u *get_mapclear_arg(expand_T *xp, int idx);
+void set_no_hlsearch(int flag);
 int get_pressedreturn(void);
 void set_pressedreturn(int val);
 /* vim: set ft=c : */
diff --git a/src/screen.c b/src/screen.c
index d1f17b5..06dc304 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -7945,7 +7945,7 @@
 		{
 		    /* don't free regprog in the match list, it's a copy */
 		    vim_regfree(shl->rm.regprog);
-		    SET_NO_HLSEARCH(TRUE);
+		    set_no_hlsearch(TRUE);
 		}
 		shl->rm.regprog = NULL;
 		shl->lnum = 0;
diff --git a/src/search.c b/src/search.c
index a346362..726013e 100644
--- a/src/search.c
+++ b/src/search.c
@@ -293,7 +293,7 @@
 	/* If 'hlsearch' set and search pat changed: need redraw. */
 	if (p_hls)
 	    redraw_all_later(SOME_VALID);
-	SET_NO_HLSEARCH(FALSE);
+	set_no_hlsearch(FALSE);
 #endif
     }
 }
@@ -336,7 +336,7 @@
 	spats[1] = saved_spats[1];
 #ifdef FEAT_SEARCH_EXTRA
 	last_idx = saved_last_idx;
-	SET_NO_HLSEARCH(saved_no_hlsearch);
+	set_no_hlsearch(saved_no_hlsearch);
 #endif
     }
 }
@@ -387,7 +387,7 @@
     set_vv_searchforward();
 # endif
     last_idx = saved_last_idx;
-    SET_NO_HLSEARCH(saved_no_hlsearch);
+    set_no_hlsearch(saved_no_hlsearch);
 }
 
     char_u *
@@ -1282,7 +1282,7 @@
     if (no_hlsearch && !(options & SEARCH_KEEP))
     {
 	redraw_all_later(SOME_VALID);
-	SET_NO_HLSEARCH(FALSE);
+	set_no_hlsearch(FALSE);
     }
 #endif
 
@@ -5757,9 +5757,7 @@
 		spats[idx].off.off = off;
 #ifdef FEAT_SEARCH_EXTRA
 		if (setlast)
-		{
-		    SET_NO_HLSEARCH(!hlsearch_on);
-		}
+		    set_no_hlsearch(!hlsearch_on);
 #endif
 	    }
 	}
diff --git a/src/tag.c b/src/tag.c
index ca1f2f3..92ed2a7 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -3409,9 +3409,7 @@
 #ifdef FEAT_SEARCH_EXTRA
 	/* restore no_hlsearch when keeping the old search pattern */
 	if (search_options)
-	{
-	    SET_NO_HLSEARCH(save_no_hlsearch);
-	}
+	    set_no_hlsearch(save_no_hlsearch);
 #endif
 
 	/* Return OK if jumped to another file (at least we found the file!). */
diff --git a/src/version.c b/src/version.c
index 428ae28..773e4b4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -762,6 +762,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1768,
+/**/
     1767,
 /**/
     1766,
diff --git a/src/vim.h b/src/vim.h
index df396ec..985a492 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -2458,12 +2458,6 @@
 /* Character used as separated in autoload function/variable names. */
 #define AUTOLOAD_CHAR '#'
 
-#ifdef FEAT_EVAL
-# define SET_NO_HLSEARCH(flag) no_hlsearch = (flag); set_vim_var_nr(VV_HLSEARCH, !no_hlsearch && p_hls)
-#else
-# define SET_NO_HLSEARCH(flag) no_hlsearch = (flag)
-#endif
-
 #ifdef FEAT_JOB_CHANNEL
 # define MAX_OPEN_CHANNELS 10
 #else
