diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index c3e894f..c009494 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -9648,6 +9648,9 @@
 		range overlaps with another.
 		Only characters with value 0x100 and higher can be used.
 
+		If the new value causes 'fillchars' or 'listchars' to become
+		invalid it is rejected and an error is given.
+
 		To clear the overrides pass an empty list: >
 		   setcellwidths([]);
 <		You can use the script $VIMRUNTIME/tools/emoji_list.vim to see
diff --git a/src/errors.h b/src/errors.h
index 12d00b7..96a9b2f 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -160,6 +160,10 @@
 	INIT(= N_("E711: List value does not have enough items"));
 EXTERN char e_cannot_slice_dictionary[]
 	INIT(= N_("E719: Cannot slice a Dictionary"));
+EXTERN char e_conflicts_with_value_of_listchars[]
+	INIT(= N_("E834: Conflicts with value of 'listchars'"));
+EXTERN char e_conflicts_with_value_of_fillchars[]
+	INIT(= N_("E835: Conflicts with value of 'fillchars'"));
 EXTERN char e_assert_fails_second_arg[]
 	INIT(= N_("E856: \"assert_fails()\" second argument must be a string or a list with one or two strings"));
 EXTERN char e_using_invalid_value_as_string_str[]
diff --git a/src/mbyte.c b/src/mbyte.c
index a626f50..76eab4e 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -5510,6 +5510,8 @@
     int		    i;
     listitem_T	    **ptrs;
     cw_interval_T   *table;
+    cw_interval_T   *cw_table_save;
+    size_t	    cw_table_size_save;
 
     if (in_vim9script() && check_for_list_arg(argvars, 0) == FAIL)
 	return;
@@ -5620,9 +5622,41 @@
     }
 
     vim_free(ptrs);
-    vim_free(cw_table);
+
+    cw_table_save = cw_table;
+    cw_table_size_save = cw_table_size;
     cw_table = table;
     cw_table_size = l->lv_len;
+
+    // Check that the new value does not conflict with 'fillchars' or
+    // 'listchars'.
+    if (set_chars_option(curwin, &p_fcs) != NULL)
+    {
+	emsg(_(e_conflicts_with_value_of_fillchars));
+	cw_table = cw_table_save;
+	cw_table_size = cw_table_size_save;
+	vim_free(table);
+	return;
+    }
+    else
+    {
+	tabpage_T	*tp;
+	win_T	*wp;
+
+	FOR_ALL_TAB_WINDOWS(tp, wp)
+	{
+	    if (set_chars_option(wp, &wp->w_p_lcs) != NULL)
+	    {
+		emsg((e_conflicts_with_value_of_listchars));
+		cw_table = cw_table_save;
+		cw_table_size = cw_table_size_save;
+		vim_free(table);
+		return;
+	    }
+	}
+    }
+
+    vim_free(cw_table_save);
 }
 
     void
diff --git a/src/optionstr.c b/src/optionstr.c
index 7f2b04d..3afb3db 100644
--- a/src/optionstr.c
+++ b/src/optionstr.c
@@ -871,7 +871,7 @@
 	if (check_opt_strings(p_ambw, p_ambw_values, FALSE) != OK)
 	    errmsg = e_invarg;
 	else if (set_chars_option(curwin, &p_fcs) != NULL)
-	    errmsg = _("E835: Conflicts with value of 'fillchars'");
+	    errmsg = _(e_conflicts_with_value_of_fillchars);
 	else
 	{
 	    tabpage_T	*tp;
@@ -881,7 +881,7 @@
 	    {
 		if (set_chars_option(wp, &wp->w_p_lcs) != NULL)
 		{
-		    errmsg = _("E834: Conflicts with value of 'listchars'");
+		    errmsg = _(e_conflicts_with_value_of_listchars);
 		    goto ambw_end;
 		}
 	    }
diff --git a/src/testdir/test_utf8.vim b/src/testdir/test_utf8.vim
index 5454e43..250df0b 100644
--- a/src/testdir/test_utf8.vim
+++ b/src/testdir/test_utf8.vim
@@ -185,6 +185,16 @@
   call assert_fails('call setcellwidths([[0x111, 0x122, 1], [0x122, 0x123, 2]])', 'E1113:')
 
   call assert_fails('call setcellwidths([[0x33, 0x44, 2]])', 'E1114:')
+
+  set listchars=tab:--\\u2192
+  call assert_fails('call setcellwidths([[0x2192, 0x2192, 2]])', 'E834:')
+
+  set fillchars=stl:\\u2501
+  call assert_fails('call setcellwidths([[0x2501, 0x2501, 2]])', 'E835:')
+
+  set listchars&
+  set fillchars&
+  call setcellwidths([])
 endfunc
 
 func Test_print_overlong()
diff --git a/src/version.c b/src/version.c
index 227db82..072d11f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3545,
+/**/
     3544,
 /**/
     3543,
