updated for version 7.3.691
Problem:    State specific to the Python thread is discarded.
Solution:   Keep state between threads. (Paul)
diff --git a/src/if_python.c b/src/if_python.c
index c194598..2a53c93 100644
--- a/src/if_python.c
+++ b/src/if_python.c
@@ -740,9 +740,11 @@
 #else
 	PyMac_Initialize();
 #endif
-	/* initialise threads */
+	/* Initialise threads and save the state using PyGILState_Ensure.
+	 * Without this call, thread-specific state (such as the system trace
+	 * hook), will be lost between invocations of Python code.  */
 	PyEval_InitThreads();
-
+	pygilstate = PyGILState_Ensure();
 #ifdef DYNAMIC_PYTHON
 	get_exceptions();
 #endif
diff --git a/src/version.c b/src/version.c
index 01d6793..2d9529c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -720,6 +720,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    691,
+/**/
     690,
 /**/
     689,