Issue #13153: Tkinter functions now raise TclError instead of ValueError when
a string argument contains non-BMP character.
diff --git a/Misc/NEWS b/Misc/NEWS
index 82078c9..5013392 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -178,6 +178,9 @@
 Library
 -------
 
+- Issue #13153: Tkinter functions now raise TclError instead of ValueError when
+  a string argument contains non-BMP character.
+
 - Issue #9669: Protect re against infinite loops on zero-width matching in
   non-greedy repeat.  Patch by Matthew Barnett.
 
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 70f4703..d18c7f0 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -990,7 +990,7 @@
 #if TCL_UTF_MAX == 3
             if (ch >= 0x10000) {
                 /* Tcl doesn't do UTF-16, yet. */
-                PyErr_Format(PyExc_ValueError,
+                PyErr_Format(Tkinter_TclError,
                              "character U+%x is above the range "
                              "(U+0000-U+FFFF) allowed by Tcl",
                              ch);