diff --git a/src/match.c b/src/match.c
index 9edba8d..fb130ae 100644
--- a/src/match.c
+++ b/src/match.c
@@ -618,6 +618,26 @@
 }
 
 /*
+ * Update "shl->has_cursor" based on the match in "shl" and the cursor
+ * position.
+ */
+    static void
+check_cur_search_hl(win_T *wp, match_T *shl)
+{
+    long linecount = shl->rm.endpos[0].lnum - shl->rm.startpos[0].lnum;
+
+    if (wp->w_cursor.lnum >= shl->lnum
+	    && wp->w_cursor.lnum <= shl->lnum + shl->rm.endpos[0].lnum
+	    && (wp->w_cursor.lnum > shl->lnum
+				|| wp->w_cursor.col >= shl->rm.startpos[0].col)
+	    && (wp->w_cursor.lnum < shl->lnum + linecount
+				  || wp->w_cursor.col < shl->rm.endpos[0].col))
+	shl->has_cursor = TRUE;
+    else
+	shl->has_cursor = FALSE;
+}
+
+/*
  * Prepare for 'hlsearch' and match highlighting in one window line.
  * Return TRUE if there is such highlighting and set "search_attr" to the
  * current highlight attribute.
@@ -677,20 +697,13 @@
 		shl->endcol = shl->rm.endpos[0].col;
 	    else
 		shl->endcol = MAXCOL;
-	    if (shl->rm.endpos[0].lnum != shl->rm.startpos[0].lnum)
-		shl->lines = shl->rm.endpos[0].lnum - shl->rm.startpos[0].lnum;
-	    else
+	    shl->lines = shl->rm.endpos[0].lnum - shl->rm.startpos[0].lnum;
+	    if (shl->lines == 0)
 		shl->lines = 1;
 
 	    // check if the cursor is in the match before changing the columns
-	    if (wp->w_cursor.lnum >= shl->lnum
-			&& wp->w_cursor.lnum
-					  <= shl->lnum + shl->rm.endpos[0].lnum
-			&& (wp->w_cursor.lnum > shl->lnum
-				|| wp->w_cursor.col >= shl->rm.startpos[0].col)
-			&& (wp->w_cursor.lnum < shl->lnum + shl->lines
-				  || wp->w_cursor.col < shl->rm.endpos[0].col))
-		shl->has_cursor = TRUE;
+	    if (shl == search_hl)
+		check_cur_search_hl(wp, shl);
 
 	    // Highlight one character for an empty match.
 	    if (shl->startcol == shl->endcol)
@@ -811,6 +824,10 @@
 		    else
 			shl->endcol = MAXCOL;
 
+		    // check if the cursor is in the match
+		    if (shl == search_hl)
+			check_cur_search_hl(wp, shl);
+
 		    if (shl->startcol == shl->endcol)
 		    {
 			// highlight empty match, try again after
diff --git a/src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump b/src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump
index ef2922f..ab72665 100644
--- a/src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump
+++ b/src/testdir/dumps/Test_hlsearch_cursearch_single_line_1.dump
@@ -2,7 +2,7 @@
 >f+0&#4040ff13|o@1| +0&#ffffff0@56
 |b|a|r| @56
 |b|a|z| @56
-|f+0&#ffff4012|o@1| +0&#ffffff0@56
+|f+0&#ffff4012|o@1| +0&#ffffff0|t|h|e| |f+0&#ffff4012|o@1| +0&#ffffff0|a|n|d| |f+0&#ffff4012|o@1| +0&#ffffff0@40
 |b|a|r| @56
 |~+0#4040ff13&| @58
 |~| @58
diff --git a/src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump b/src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump
index 26e03e0..dd4aa89 100644
--- a/src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump
+++ b/src/testdir/dumps/Test_hlsearch_cursearch_single_line_2.dump
@@ -2,7 +2,7 @@
 |f+0&#ffff4012|o@1| +0&#ffffff0@56
 |b|a|r| @56
 |b|a|z| @56
->f+0&#4040ff13|o@1| +0&#ffffff0@56
+>f+0&#4040ff13|o@1| +0&#ffffff0|t|h|e| |f+0&#ffff4012|o@1| +0&#ffffff0|a|n|d| |f+0&#ffff4012|o@1| +0&#ffffff0@40
 |b|a|r| @56
 |~+0#4040ff13&| @58
 |~| @58
diff --git a/src/testdir/dumps/Test_hlsearch_cursearch_single_line_2a.dump b/src/testdir/dumps/Test_hlsearch_cursearch_single_line_2a.dump
new file mode 100644
index 0000000..2cc3c17
--- /dev/null
+++ b/src/testdir/dumps/Test_hlsearch_cursearch_single_line_2a.dump
@@ -0,0 +1,9 @@
+|o+0&#ffffff0|n|e| @56
+|f+0&#ffff4012|o@1| +0&#ffffff0@56
+|b|a|r| @56
+|b|a|z| @56
+|f+0&#ffff4012|o@1| +0&#ffffff0|t|h|e| >f+0&#4040ff13|o@1| +0&#ffffff0|a|n|d| |f+0&#ffff4012|o@1| +0&#ffffff0@40
+|b|a|r| @56
+|~+0#4040ff13&| @58
+|~| @58
+|/+0#0000000&|f|o@1| @37|5|,|9| @10|A|l@1| 
diff --git a/src/testdir/dumps/Test_hlsearch_cursearch_single_line_2b.dump b/src/testdir/dumps/Test_hlsearch_cursearch_single_line_2b.dump
new file mode 100644
index 0000000..0b20bd5
--- /dev/null
+++ b/src/testdir/dumps/Test_hlsearch_cursearch_single_line_2b.dump
@@ -0,0 +1,9 @@
+|o+0&#ffffff0|n|e| @56
+|f+0&#ffff4012|o@1| +0&#ffffff0@56
+|b|a|r| @56
+|b|a|z| @56
+|f+0&#ffff4012|o@1| +0&#ffffff0|t|h|e| |f+0&#ffff4012|o@1| +0&#ffffff0|a|n|d| >f+0&#4040ff13|o@1| +0&#ffffff0@40
+|b|a|r| @56
+|~+0#4040ff13&| @58
+|~| @58
+|/+0#0000000&|f|o@1| @37|5|,|1|7| @9|A|l@1| 
diff --git a/src/testdir/test_search.vim b/src/testdir/test_search.vim
index 97ddfdb..2a767c0 100644
--- a/src/testdir/test_search.vim
+++ b/src/testdir/test_search.vim
@@ -1043,7 +1043,7 @@
 
   let lines =<< trim END
     set hlsearch scrolloff=0
-    call setline(1, ['one', 'foo', 'bar', 'baz', 'foo', 'bar'])
+    call setline(1, ['one', 'foo', 'bar', 'baz', 'foo the foo and foo', 'bar'])
     hi Search ctermbg=yellow
     hi CurSearch ctermbg=blue
   END
@@ -1056,7 +1056,14 @@
   call term_sendkeys(buf, "n")
   call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_single_line_2', {})
 
-  call term_sendkeys(buf, "?\<CR>")
+  call term_sendkeys(buf, "n")
+  call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_single_line_2a', {})
+
+  call term_sendkeys(buf, "n")
+  call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_single_line_2b', {})
+
+  call term_sendkeys(buf, ":call setline(5, 'foo')\<CR>")
+  call term_sendkeys(buf, "0?\<CR>")
   call VerifyScreenDump(buf, 'Test_hlsearch_cursearch_single_line_3', {})
 
   call term_sendkeys(buf, "gg/foo\\nbar\<CR>")
diff --git a/src/version.c b/src/version.c
index 4c914af..28ac75e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4805,
+/**/
     4804,
 /**/
     4803,
