diff --git a/Lib/test/test_compiler.py b/Lib/test/test_compiler.py
index bc2dd70..63cbc00 100644
--- a/Lib/test/test_compiler.py
+++ b/Lib/test/test_compiler.py
@@ -2,6 +2,7 @@
 import os
 import test.test_support
 import unittest
+from random import random
 
 class CompilerTest(unittest.TestCase):
 
@@ -18,6 +19,8 @@
             for basename in os.listdir(dir):
                 if not basename.endswith(".py"):
                     continue
+                if not TEST_ALL and random() < 0.98:
+                    continue
                 path = os.path.join(dir, basename)
                 if test.test_support.verbose:
                     print "compiling", path
@@ -31,7 +34,8 @@
                     compiler.compile(buf, basename, "exec")
 
 def test_main():
-    test.test_support.requires("compiler")
+    global TEST_ALL
+    TEST_ALL = test.test_support.is_resource_enabled("compiler")
     test.test_support.run_unittest(CompilerTest)
 
 if __name__ == "__main__":
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 8711e4e..a4e4041 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -181,6 +181,10 @@
     def eval_equation(self, s):
         #global DEFAULT_PRECISION
         #print DEFAULT_PRECISION
+
+        if not TEST_ALL and random.random() < 0.90:
+            return
+
         try:
             Sides = s.split('->')
             L = Sides[0].strip().split()
@@ -997,9 +1001,13 @@
 def test_main(arith=False, verbose=None):
     """ Execute the tests.
 
-    Runs arithmetic tests if arith is True or if the "decimal" resource
-    is enables in regrtest.py
+    Runs all arithmetic tests if arith is True or if the "decimal" resource
+    is enabled in regrtest.py
     """
+
+    global TEST_ALL
+    TEST_ALL = arith or is_resource_enabled('decimal')
+
     test_classes = [
         DecimalExplicitConstructionTest,
         DecimalImplicitConstructionTest,
@@ -1008,20 +1016,17 @@
         DecimalUsabilityTest,
         DecimalPythonAPItests,
         ContextAPItests,
+        DecimalTest,
     ]
 
-    if arith or is_resource_enabled('decimal'):
-        test_classes.extend([DecimalTest])
-
     run_unittest(*test_classes)
     import decimal as DecimalModule
     run_doctest(DecimalModule, verbose)
-    return
 
 
 if __name__ == '__main__':
     # Calling with no arguments runs all tests.
-    # Calling with "Skip" will skipover the arithmetic tests.
+    # Calling with "Skip" will skip over 90% of the arithmetic tests.
     if len(sys.argv) == 1:
         test_main(arith=True, verbose=True)
     elif len(sys.argv) == 2:
