diff --git a/Include/ceval.h b/Include/ceval.h
index 63204b2..e1af801 100644
--- a/Include/ceval.h
+++ b/Include/ceval.h
@@ -48,6 +48,10 @@
 PyAPI_FUNC(char *) PyEval_GetFuncName(PyObject *);
 PyAPI_FUNC(char *) PyEval_GetFuncDesc(PyObject *);
 
+/* this used to be handled on a per-thread basis - now just two globals */
+PyAPI_DATA(volatile int) _Py_Ticker;
+PyAPI_DATA(int) _Py_CheckInterval;
+
 /* Interface for threads.
 
    A module that plans to do a blocking system call (or something else
diff --git a/Include/pystate.h b/Include/pystate.h
index 913dc7a..9b61ad7 100644
--- a/Include/pystate.h
+++ b/Include/pystate.h
@@ -22,7 +22,6 @@
     PyObject *sysdict;
     PyObject *builtins;
 
-    int checkinterval;
 #ifdef HAVE_DLOPEN
     int dlopenflags;
 #endif
@@ -50,7 +49,6 @@
 
     struct _frame *frame;
     int recursion_depth;
-    int ticker;
     int tracing;
     int use_tracing;
 
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 9e641af..35d1211 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -28,11 +28,9 @@
 static PyLongObject *divrem1(PyLongObject *, digit, digit *);
 static PyObject *long_format(PyObject *aa, int base, int addL);
 
-static int ticker;	/* XXX Could be shared with ceval? */
-
 #define SIGCHECK(PyTryBlock) \
-	if (--ticker < 0) { \
-		ticker = 100; \
+	if (--_Py_Ticker < 0) { \
+		_Py_Ticker = _Py_CheckInterval; \
 		if (PyErr_CheckSignals()) { PyTryBlock; } \
 	}
 
diff --git a/Python/ceval.c b/Python/ceval.c
index 8bd945e..8b3823a0 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -395,6 +395,8 @@
 	pendingcalls[i].func = func;
 	pendingcalls[i].arg = arg;
 	pendinglast = j;
+
+	_Py_Ticker = 0;
 	things_to_do = 1; /* Signal main loop */
 	busy = 0;
 	/* XXX End critical section */
@@ -465,6 +467,10 @@
 static enum why_code do_raise(PyObject *, PyObject *, PyObject *);
 static int unpack_iterable(PyObject *, int, PyObject **);
 
+/* for manipulating the thread switch and periodic "stuff" - used to be
+   per thread, now just a pair o' globals */
+int _Py_CheckInterval = 10;
+volatile int _Py_Ticker = 10;
 
 PyObject *
 PyEval_EvalCode(PyCodeObject *co, PyObject *globals, PyObject *locals)
@@ -669,8 +675,8 @@
 		   async I/O handler); see Py_AddPendingCall() and
 		   Py_MakePendingCalls() above. */
 
-		if (things_to_do || --tstate->ticker < 0) {
-			tstate->ticker = tstate->interp->checkinterval;
+		if (--_Py_Ticker < 0) {
+			_Py_Ticker = _Py_CheckInterval;
 			if (things_to_do) {
 				if (Py_MakePendingCalls() < 0) {
 					why = WHY_EXCEPTION;
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index cdacce3..9057938 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -352,8 +352,7 @@
 static PyObject *
 sys_setcheckinterval(PyObject *self, PyObject *args)
 {
-	PyThreadState *tstate = PyThreadState_Get();
-	if (!PyArg_ParseTuple(args, "i:setcheckinterval", &tstate->interp->checkinterval))
+	if (!PyArg_ParseTuple(args, "i:setcheckinterval", &_Py_CheckInterval))
 		return NULL;
 	Py_INCREF(Py_None);
 	return Py_None;
