Issue #3835: Refuse to use unthreaded Tcl in threaded Python.
Patch by Guilherme Polo and Andrew Svetlov.
diff --git a/Misc/NEWS b/Misc/NEWS
index 8e7ef6f..6d51cba 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -24,6 +24,8 @@
 Library
 -------
 
+- Issue #3835: Refuse to use unthreaded Tcl in threaded Python.
+
 - Issue #2843: Add new Tk API to Tkinter.
 
 - Issue #14184: Increase the default stack size for secondary threads on
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index abbe0ec..94ae48d 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -613,6 +613,13 @@
     }
 #endif
 #ifdef WITH_THREAD
+    if (!(v->threaded)) {
+        PyErr_SetString(PyExc_RuntimeError,
+                        "Tcl/Tk was not compiled with --enable-threads but "
+                        "Python has threads enabled");
+        Py_DECREF(v);
+        return 0;
+    }
     if (v->threaded && tcl_lock) {
         /* If Tcl is threaded, we don't need the lock. */
         PyThread_free_lock(tcl_lock);