diff --git a/src/eval.c b/src/eval.c
index f84491e..f08ae57 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -655,10 +655,27 @@
 }
 
 /*
+ * Call Vim script function like call_func_retnr() and drop the result.
+ * Returns FAIL when calling the function fails.
+ */
+    int
+call_func_noret(
+    char_u      *func,
+    int		argc,
+    typval_T	*argv)
+{
+    typval_T	rettv;
+
+    if (call_vim_function(func, argc, argv, &rettv) == FAIL)
+	return FAIL;
+    clear_tv(&rettv);
+    return OK;
+}
+
+/*
  * Call Vim script function "func" and return the result as a string.
+ * Uses "argv" and "argc" as call_func_retnr().
  * Returns NULL when calling the function fails.
- * Uses argv[0] to argv[argc - 1] for the function arguments. argv[argc] should
- * have type VAR_UNKNOWN.
  */
     void *
 call_func_retstr(
@@ -679,8 +696,7 @@
 
 /*
  * Call Vim script function "func" and return the result as a List.
- * Uses argv[0] to argv[argc - 1] for the function arguments. argv[argc] should
- * have type VAR_UNKNOWN.
+ * Uses "argv" and "argc" as call_func_retnr().
  * Returns NULL when there is something wrong.
  */
     void *
diff --git a/src/ops.c b/src/ops.c
index 743bdd4..53bd084 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -3299,7 +3299,7 @@
 	// function.
 	virtual_op = MAYBE;
 
-	(void)call_func_retnr(p_opfunc, 1, argv);
+	(void)call_func_noret(p_opfunc, 1, argv);
 
 	virtual_op = save_virtual_op;
 	if (cmdmod.cmod_flags & CMOD_LOCKMARKS)
diff --git a/src/proto/eval.pro b/src/proto/eval.pro
index b1a2c0f..8fa908c 100644
--- a/src/proto/eval.pro
+++ b/src/proto/eval.pro
@@ -18,6 +18,7 @@
 typval_T *eval_expr(char_u *arg, exarg_T *eap);
 int call_vim_function(char_u *func, int argc, typval_T *argv, typval_T *rettv);
 varnumber_T call_func_retnr(char_u *func, int argc, typval_T *argv);
+int call_func_noret(char_u *func, int argc, typval_T *argv);
 void *call_func_retstr(char_u *func, int argc, typval_T *argv);
 void *call_func_retlist(char_u *func, int argc, typval_T *argv);
 int eval_foldexpr(char_u *arg, int *cp);
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 4a0c7a9..fcfe41f 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -1976,5 +1976,20 @@
   CheckScriptSuccess(lines)
 enddef
 
+def Test_opfunc()
+  nnoremap <F3> <cmd>set opfunc=Opfunc<cr>g@
+  def g:Opfunc(_: any): string
+    setline(1, 'ASDF')
+    return ''
+  enddef
+  new
+  setline(1, 'asdf')
+  feedkeys("\<F3>$", 'x')
+  assert_equal('ASDF', getline(1))
+
+  bwipe!
+  nunmap <F3>
+enddef
+
 
 " vim: ts=8 sw=2 sts=2 expandtab tw=80 fdm=marker
diff --git a/src/version.c b/src/version.c
index d18033e..a99765c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2186,
+/**/
     2185,
 /**/
     2184,
