Use the dummy_thread module in Queue.py and tempfile.py.
tempfile.py already contained code to let it run without threads present;
for Queue.py this is considered a useful feature too.
diff --git a/Lib/Queue.py b/Lib/Queue.py
index 39c86f2..83a8318 100644
--- a/Lib/Queue.py
+++ b/Lib/Queue.py
@@ -16,7 +16,10 @@
 
         If maxsize is <= 0, the queue size is infinite.
         """
-        import thread
+        try:
+            import thread
+        except ImportError:
+            import dummy_thread as thread
         self._init(maxsize)
         self.mutex = thread.allocate_lock()
         self.esema = thread.allocate_lock()
diff --git a/Lib/tempfile.py b/Lib/tempfile.py
index 0393ba5..d322d8f 100644
--- a/Lib/tempfile.py
+++ b/Lib/tempfile.py
@@ -50,12 +50,9 @@
 
 try:
     import thread as _thread
-    _allocate_lock = _thread.allocate_lock
-except (ImportError, AttributeError):
-    class _allocate_lock:
-        def acquire(self):
-            pass
-        release = acquire
+except ImportError:
+    import dummy_thread as _thread
+_allocate_lock = _thread.allocate_lock
 
 _text_openflags = _os.O_RDWR | _os.O_CREAT | _os.O_EXCL
 if hasattr(_os, 'O_NOINHERIT'):