Bug #1083645

* The decimal module wouldn't load on builds without threads.
diff --git a/Lib/decimal.py b/Lib/decimal.py
index f9c065f..05bdc99 100644
--- a/Lib/decimal.py
+++ b/Lib/decimal.py
@@ -134,7 +134,6 @@
     'setcontext', 'getcontext'
 ]
 
-import threading
 import copy
 
 #Rounding
@@ -385,7 +384,19 @@
 # The getcontext() and setcontext() function manage access to a thread-local
 # current context.  Py2.4 offers direct support for thread locals.  If that
 # is not available, use threading.currentThread() which is slower but will
-# work for older Pythons.
+# work for older Pythons.  If threads are not part of the build, create a
+# mock threading object with threading.local() returning the module namespace.
+
+try:
+    import threading
+except ImportError:
+    # Python was compiled without threads; create a mock object instead
+    import sys
+    class MockThreading:
+        def local(self, sys=sys):
+            return sys.modules[__name__]
+    threading = MockThreading()
+    del sys, MockThreading
 
 try:
     threading.local
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 06e8b9d..f523a72 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -32,8 +32,11 @@
 import pickle, copy
 from decimal import *
 from test.test_support import TestSkipped, run_unittest, run_doctest, is_resource_enabled
-import threading
 import random
+try:
+    import threading
+except ImportError:
+    threading = None
 
 # Useful Test Constant
 Signals = getcontext().flags.keys()
@@ -724,7 +727,11 @@
 class DecimalUseOfContextTest(unittest.TestCase):
     '''Unit tests for Use of Context cases in Decimal.'''
 
-    import threading
+    try:
+        import threading
+    except ImportError:
+        threading = None
+
     # Take care executing this test from IDLE, there's an issue in threading
     # that hangs IDLE and I couldn't find it
 
@@ -745,6 +752,9 @@
         self.finish1.wait()
         return
 
+    if threading is None:
+        del test_threading
+
 
 class DecimalUsabilityTest(unittest.TestCase):
     '''Unit tests for Usability cases of Decimal.'''