Check for TclError when reading variables. Fixes #807314.
Backported to 2.3.
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index 5253a10..02e4feb 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -1647,11 +1647,15 @@
 	ENTER_TCL
 	tres = Tcl_GetVar2Ex(Tkapp_Interp(self), name1, name2, flags);
 	ENTER_OVERLAP
-	if (((TkappObject*)self)->wantobjects) {
-		res = FromObj(self, tres);
-	}
-	else {
-		res = PyString_FromString(Tcl_GetString(tres));
+	if (tres == NULL) {
+		PyErr_SetString(Tkinter_TclError, Tcl_GetStringResult(Tkapp_Interp(self)));
+	} else {
+		if (((TkappObject*)self)->wantobjects) {
+			res = FromObj(self, tres);
+		}
+		else {
+			res = PyString_FromString(Tcl_GetString(tres));
+		}
 	}
 	LEAVE_OVERLAP_TCL
 	return res;