diff --git a/src/option.c b/src/option.c
index 9db9c26..b9d7edb 100644
--- a/src/option.c
+++ b/src/option.c
@@ -3176,7 +3176,9 @@
     if (curwin->w_curswant != MAXCOL
 		     && (options[opt_idx].flags & (P_CURSWANT | P_RALL)) != 0)
 	curwin->w_set_curswant = TRUE;
-    check_redraw(options[opt_idx].flags);
+
+    if ((opt_flags & OPT_NO_REDRAW) == 0)
+	check_redraw(options[opt_idx].flags);
 
     return NULL;
 }
@@ -3192,8 +3194,8 @@
     long	value,			// new value
     char	*errbuf,		// buffer for error messages
     size_t	errbuflen,		// length of "errbuf"
-    int		opt_flags)		// OPT_LOCAL, OPT_GLOBAL and
-					// OPT_MODELINE
+    int		opt_flags)		// OPT_LOCAL, OPT_GLOBAL,
+					// OPT_MODELINE, etc.
 {
     char	*errmsg = NULL;
     long	old_value = *(long *)varp;
@@ -3734,7 +3736,8 @@
     if (curwin->w_curswant != MAXCOL
 		     && (options[opt_idx].flags & (P_CURSWANT | P_RALL)) != 0)
 	curwin->w_set_curswant = TRUE;
-    check_redraw(options[opt_idx].flags);
+    if ((opt_flags & OPT_NO_REDRAW) == 0)
+	check_redraw(options[opt_idx].flags);
 
     return errmsg;
 }
diff --git a/src/optionstr.c b/src/optionstr.c
index a1cbe26..521242d 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -2461,11 +2461,14 @@
 		   && (get_option_flags(opt_idx) & (P_CURSWANT | P_RALL)) != 0)
 	curwin->w_set_curswant = TRUE;
 
+    if ((opt_flags & OPT_NO_REDRAW) == 0)
+    {
 #ifdef FEAT_GUI
-    // check redraw when it's not a GUI option or the GUI is active.
-    if (!redraw_gui_only || gui.in_use)
+	// check redraw when it's not a GUI option or the GUI is active.
+	if (!redraw_gui_only || gui.in_use)
 #endif
-	check_redraw(get_option_flags(opt_idx));
+	    check_redraw(get_option_flags(opt_idx));
+    }
 
 #if defined(FEAT_VTP) && defined(FEAT_TERMGUICOLORS)
     if (did_swaptcap)
diff --git a/src/scriptfile.c b/src/scriptfile.c
index 82ae42a..1e4b5cc 100644
--- a/src/scriptfile.c
+++ b/src/scriptfile.c
@@ -1459,7 +1459,7 @@
     si = SCRIPT_ITEM(current_sctx.sc_sid);
     if (si->sn_save_cpo != NULL)
     {
-	set_option_value((char_u *)"cpo", 0L, si->sn_save_cpo, 0);
+	set_option_value((char_u *)"cpo", 0L, si->sn_save_cpo, OPT_NO_REDRAW);
 	VIM_CLEAR(si->sn_save_cpo);
     }
 
diff --git a/src/testdir/dumps/Test_vim9_no_redraw.dump b/src/testdir/dumps/Test_vim9_no_redraw.dump
new file mode 100644
index 0000000..1d77a08
--- /dev/null
+++ b/src/testdir/dumps/Test_vim9_no_redraw.dump
@@ -0,0 +1,6 @@
+|s+0&#ffffff0|o+0&#e0e0e08|m|e| |t|e|x|t| | +0&#ffffff0@64
+|~+0#4040ff13&| @73
+|~| @73
+|~| @73
+|~| @73
+|:+0#0000000&|'|<|,|'|>> @68
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 32312b0..58a72ef 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -5,6 +5,7 @@
 source view_util.vim
 source vim9.vim
 source shared.vim
+source screendump.vim
 
 def Test_range_only()
   new
@@ -3338,6 +3339,36 @@
   set cpo&vim
 enddef
 
+def Test_no_redraw_when_restoring_cpo()
+  CheckScreendump
+
+  var lines =<< trim END
+    vim9script
+    def script#func()
+    enddef
+  END
+  mkdir('Xdir/autoload', 'p')
+  writefile(lines, 'Xdir/autoload/script.vim')
+
+  lines =<< trim END
+      vim9script
+      set cpo+=M
+      exe 'set rtp^=' .. getcwd() .. '/Xdir'
+      au CmdlineEnter : ++once timer_start(0, () => script#func())
+      setline(1, 'some text')
+  END
+  writefile(lines, 'XTest_redraw_cpo')
+  var buf = RunVimInTerminal('-S XTest_redraw_cpo', {'rows': 6})
+  term_sendkeys(buf, "V:")
+  VerifyScreenDump(buf, 'Test_vim9_no_redraw', {})
+
+  # clean up
+  term_sendkeys(buf, "\<Esc>u")
+  StopVimInTerminal(buf)
+  delete('XTest_redraw_cpo')
+  delete('Xdir', 'rf')
+enddef
+
 
 def Test_unset_any_variable()
   var lines =<< trim END
diff --git a/src/version.c b/src/version.c
index f3c79c8..5ae184e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2581,
+/**/
     2580,
 /**/
     2579,
diff --git a/src/vim.h b/src/vim.h
index e27bf8b..5dd69f6 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1200,6 +1200,7 @@
 #define OPT_WINONLY	0x10	// only set window-local options
 #define OPT_NOWIN	0x20	// don't set window-local options
 #define OPT_ONECOLUMN	0x40	// list options one per line
+#define OPT_NO_REDRAW	0x80	// ignore redraw flags on option
 
 // Magic chars used in confirm dialog strings
 #define DLG_BUTTON_SEP	'\n'
diff --git a/src/vim9script.c b/src/vim9script.c
index 5ce7c3b..cd60b25 100644
--- a/src/vim9script.c
+++ b/src/vim9script.c
@@ -75,7 +75,7 @@
     if (STRCMP(p_cpo, CPO_VIM) != 0)
     {
 	si->sn_save_cpo = vim_strsave(p_cpo);
-	set_option_value((char_u *)"cpo", 0L, (char_u *)CPO_VIM, 0);
+	set_option_value((char_u *)"cpo", 0L, (char_u *)CPO_VIM, OPT_NO_REDRAW);
     }
 #else
     // No check for this being the first command, it doesn't matter.
