diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 8e3a122..cc33439 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -196,6 +196,7 @@
     good = []
     bad = []
     skipped = []
+    resource_denieds = []
 
     if findleaks:
         try:
@@ -263,6 +264,8 @@
             bad.append(test)
         else:
             skipped.append(test)
+            if ok == -2:
+                resource_denieds.append(test)
         if findleaks:
             gc.collect()
             if gc.garbage:
@@ -299,7 +302,7 @@
         e = _ExpectedSkips()
         plat = sys.platform
         if e.isvalid():
-            surprise = Set(skipped) - e.getexpected()
+            surprise = Set(skipped) - e.getexpected() - Set(resource_denieds)
             if surprise:
                 print count(len(surprise), "skip"), \
                       "unexpected on", plat + ":"
@@ -395,6 +398,11 @@
                 indirect_test()
         finally:
             sys.stdout = save_stdout
+    except test_support.ResourceDenied, msg:
+        if not quiet:
+            print test, "skipped --", msg
+            sys.stdout.flush()
+        return -2
     except (ImportError, test_support.TestSkipped), msg:
         if not quiet:
             print test, "skipped --", msg
diff --git a/Lib/test/test_support.py b/Lib/test/test_support.py
index 8169533..8ac3851 100644
--- a/Lib/test/test_support.py
+++ b/Lib/test/test_support.py
@@ -21,6 +21,14 @@
     TestFailed.
     """
 
+class ResourceDenied(TestSkipped):
+    """Test skipped because it requested a disallowed resource.
+
+    This is raised when a test calls requires() for a resource that
+    has not be enabled.  It is used to distinguish between expected
+    and unexpected skips.
+    """
+
 verbose = 1              # Flag set to 0 by regrtest.py
 use_resources = None       # Flag set to [] by regrtest.py
 
@@ -57,7 +65,7 @@
     if not is_resource_enabled(resource):
         if msg is None:
             msg = "Use of the `%s' resource not enabled" % resource
-        raise TestSkipped(msg)
+        raise ResourceDenied(msg)
 
 FUZZ = 1e-6
 
