PyGILState_Ensure(), PyGILState_Release(), PyGILState_GetThisThreadState() are
not available if Python is compiled without threads.
diff --git a/Include/pystate.h b/Include/pystate.h
index 50245c2..a894bb4 100644
--- a/Include/pystate.h
+++ b/Include/pystate.h
@@ -73,9 +73,9 @@
     struct _frame *frame;
     int recursion_depth;
     char overflowed; /* The stack has overflowed. Allow 50 more calls
-		        to handle the runtime error. */
-    char recursion_critical; /* The current calls must not cause 
-				a stack overflow. */
+                        to handle the runtime error. */
+    char recursion_critical; /* The current calls must not cause
+                                a stack overflow. */
     /* 'tracing' keeps track of the execution depth when tracing/profiling.
        This is to prevent the actual trace/profile code from being recorded in
        the trace/profile. */
@@ -158,6 +158,8 @@
     enum {PyGILState_LOCKED, PyGILState_UNLOCKED}
         PyGILState_STATE;
 
+#ifdef WITH_THREAD
+
 /* Ensure that the current thread is ready to call the Python
    C API, regardless of the current state of Python, or of its
    thread lock.  This may be called as many times as desired
@@ -199,6 +201,8 @@
 */
 PyAPI_FUNC(PyThreadState *) PyGILState_GetThisThreadState(void);
 
+#endif   /* #ifdef WITH_THREAD */
+
 /* The implementation of sys._current_frames()  Returns a dict mapping
    thread id to that thread's current frame.
 */