diff --git a/src/highlight.c b/src/highlight.c
index d641703..42fab45 100644
--- a/src/highlight.c
+++ b/src/highlight.c
@@ -3850,7 +3850,7 @@
 	prev->next = m;
     m->next = cur;
 
-    redraw_later(rtype);
+    redraw_win_later(wp, rtype);
     return id;
 
 fail:
@@ -3932,7 +3932,7 @@
 	vim_free(wp->w_match_head);
 	wp->w_match_head = m;
     }
-    redraw_later(SOME_VALID);
+    redraw_win_later(wp, SOME_VALID);
 }
 
 /*
diff --git a/src/testdir/dumps/Test_matchadd_1.dump b/src/testdir/dumps/Test_matchadd_1.dump
new file mode 100644
index 0000000..d07507b
--- /dev/null
+++ b/src/testdir/dumps/Test_matchadd_1.dump
@@ -0,0 +1,12 @@
+> +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1
+|H+0&#ffff4012|e|l@1|o| +0&#ffffff0|V|i|m| |w+0#ffffff16#ff404010|o|r|l|d| +0#0000000#ffffff0@59
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|1|,|1| @11|A|l@1
+|:+0&&| @73
diff --git a/src/testdir/dumps/Test_matchclear_1.dump b/src/testdir/dumps/Test_matchclear_1.dump
new file mode 100644
index 0000000..164bfd4
--- /dev/null
+++ b/src/testdir/dumps/Test_matchclear_1.dump
@@ -0,0 +1,12 @@
+> +0&#ffffff0@74
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|[+3#0000000&|N|o| |N|a|m|e|]| @47|0|,|0|-|1| @9|A|l@1
+|H+0&&|e|l@1|o| |V|i|m| |w|o|r|l|d| @59
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|[+1#0000000&|N|o| |N|a|m|e|]| |[|+|]| @43|1|,|1| @11|A|l@1
+|:+0&&|c|a|l@1| |c|l|e|a|r|m|a|t|c|h|e|s|(|w|i|n|i|d|)| @49
diff --git a/src/testdir/test_match.vim b/src/testdir/test_match.vim
index 07005b5..8eada3f 100644
--- a/src/testdir/test_match.vim
+++ b/src/testdir/test_match.vim
@@ -253,25 +253,54 @@
   set hlsearch&
 endfunc
 
-func Test_matchdelete_other_window()
-  if !CanRunVimInTerminal()
-    throw 'Skipped: cannot make screendumps'
-  endif
-
+func OtherWindowCommon()
   let lines =<< trim END
     call setline(1, 'Hello Vim world')
     let mid = matchadd('Error', 'world', 1)
     let winid = win_getid()
     new
   END
-  call writefile(lines, 'XscriptMatchDelete')
-  let buf = RunVimInTerminal('-S XscriptMatchDelete', #{rows: 12})
+  call writefile(lines, 'XscriptMatchCommon')
+  let buf = RunVimInTerminal('-S XscriptMatchCommon', #{rows: 12})
   call term_wait(buf)
+  return buf
+endfunc
+
+func Test_matchdelete_other_window()
+  if !CanRunVimInTerminal()
+    throw 'Skipped: cannot make screendumps'
+  endif
+  let buf = OtherWindowCommon()
   call term_sendkeys(buf, ":call matchdelete(mid, winid)\<CR>")
   call VerifyScreenDump(buf, 'Test_matchdelete_1', {})
 
   call StopVimInTerminal(buf)
-  call delete('XscriptMatchDelete')
+  call delete('XscriptMatchCommon')
+endfunc
+
+func Test_matchclear_other_window()
+  if !CanRunVimInTerminal()
+    throw 'Skipped: cannot make screendumps'
+  endif
+  let buf = OtherWindowCommon()
+  call term_sendkeys(buf, ":call clearmatches(winid)\<CR>")
+  call VerifyScreenDump(buf, 'Test_matchclear_1', {})
+
+  call StopVimInTerminal(buf)
+  call delete('XscriptMatchCommon')
+endfunc
+
+func Test_matchadd_other_window()
+  if !CanRunVimInTerminal()
+    throw 'Skipped: cannot make screendumps'
+  endif
+  let buf = OtherWindowCommon()
+  call term_sendkeys(buf, ":call matchadd('Search', 'Hello', 1, -1, #{window: winid})\<CR>")
+  call term_sendkeys(buf, ":\<CR>")
+  call VerifyScreenDump(buf, 'Test_matchadd_1', {})
+
+  call StopVimInTerminal(buf)
+  call delete('XscriptMatchCommon')
 endfunc
 
 
diff --git a/src/version.c b/src/version.c
index e25be55..f8f9bb5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -778,6 +778,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1741,
+/**/
     1740,
 /**/
     1739,
