diff --git a/src/optionstr.c b/src/optionstr.c
index 91d0a69..1ec8d05 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -908,6 +908,9 @@
 		init_highlight(FALSE, FALSE);
 	    }
 #endif
+#ifdef FEAT_TERMINAL
+	    term_update_colors_all();
+#endif
 	}
 	else
 	    errmsg = e_invarg;
@@ -2176,7 +2179,7 @@
     else if (varp == &curwin->w_p_wcr)
     {
 	if (curwin->w_buffer->b_term != NULL)
-	    term_update_colors();
+	    term_update_colors(curwin->w_buffer->b_term);
     }
 # if defined(MSWIN)
     // 'termwintype'
diff --git a/src/proto/terminal.pro b/src/proto/terminal.pro
index f3bd5a3..d2e5992 100644
--- a/src/proto/terminal.pro
+++ b/src/proto/terminal.pro
@@ -19,6 +19,7 @@
 int term_use_loop(void);
 void term_win_entered(void);
 int terminal_loop(int blocking);
+void set_terminal_default_colors(int cterm_fg, int cterm_bg);
 int may_close_term_popup(void);
 void term_channel_closed(channel_T *ch);
 void term_check_channel_closed_recently(void);
@@ -28,10 +29,10 @@
 int term_show_buffer(buf_T *buf);
 void term_change_in_curbuf(void);
 int term_get_attr(win_T *wp, linenr_T lnum, int col);
-void term_update_colors(void);
+void term_update_colors(term_T *term);
+void term_update_colors_all(void);
 char_u *term_get_status_text(term_T *term);
 int set_ref_in_term(int copyID);
-void set_terminal_default_colors(int cterm_fg, int cterm_bg);
 void f_term_dumpwrite(typval_T *argvars, typval_T *rettv);
 int term_swap_diff(void);
 void f_term_dumpdiff(typval_T *argvars, typval_T *rettv);
diff --git a/src/terminal.c b/src/terminal.c
index ce9f64b..7fbff46 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -4590,9 +4590,9 @@
  * Called when 'wincolor' was set.
  */
     void
-term_update_colors(void)
+term_update_colors(term_T *term)
 {
-    term_T *term = curwin->w_buffer->b_term;
+    win_T *wp;
 
     if (term->tl_vterm == NULL)
 	return;
@@ -4602,7 +4602,21 @@
 	    &term->tl_default_color.fg,
 	    &term->tl_default_color.bg);
 
-    redraw_later(NOT_VALID);
+    FOR_ALL_WINDOWS(wp)
+	if (wp->w_buffer == term->tl_buffer)
+	    redraw_win_later(wp, NOT_VALID);
+}
+
+/*
+ * Called when 'background' was set.
+ */
+    void
+term_update_colors_all(void)
+{
+    term_T *tp;
+
+    FOR_ALL_TERMS(tp)
+	term_update_colors(tp);
 }
 
 /*
@@ -5939,7 +5953,7 @@
 
     l = rettv->vval.v_list;
     FOR_ALL_TERMS(tp)
-	if (tp != NULL && tp->tl_buffer != NULL)
+	if (tp->tl_buffer != NULL)
 	    if (list_append_number(l,
 				   (varnumber_T)tp->tl_buffer->b_fnum) == FAIL)
 		return;
diff --git a/src/version.c b/src/version.c
index b256620..63ede84 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2830,
+/**/
     2829,
 /**/
     2828,
