diff --git a/Lib/unittest/__init__.py b/Lib/unittest/__init__.py
index 06fe55d..8f77127 100644
--- a/Lib/unittest/__init__.py
+++ b/Lib/unittest/__init__.py
@@ -64,3 +64,5 @@
 
 # deprecated
 _TextTestResult = TextTestResult
+
+__unittest = True
diff --git a/Lib/unittest/__main__.py b/Lib/unittest/__main__.py
index 5bbda1c..5023610 100644
--- a/Lib/unittest/__main__.py
+++ b/Lib/unittest/__main__.py
@@ -4,5 +4,8 @@
 if sys.argv[0].endswith("__main__.py"):
     sys.argv[0] = "unittest"
 
+__unittest = True
+
+
 from .main import main
 main(module=None)
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py
index feae3fa..9495689 100644
--- a/Lib/unittest/case.py
+++ b/Lib/unittest/case.py
@@ -12,6 +12,9 @@
     strclass, safe_repr, sorted_list_difference, unorderable_list_difference
 )
 
+__unittest = True
+
+
 class SkipTest(Exception):
     """
     Raise this exception in a test to skip it.
diff --git a/Lib/unittest/loader.py b/Lib/unittest/loader.py
index 9eede8b..d6c8d84 100644
--- a/Lib/unittest/loader.py
+++ b/Lib/unittest/loader.py
@@ -10,6 +10,8 @@
 
 from . import case, suite
 
+__unittest = True
+
 
 def _CmpToKey(mycmp):
     'Convert a cmp= function into a key= function'
diff --git a/Lib/unittest/main.py b/Lib/unittest/main.py
index bd758e0..3f0f43d 100644
--- a/Lib/unittest/main.py
+++ b/Lib/unittest/main.py
@@ -6,6 +6,8 @@
 
 from . import loader, runner
 
+__unittest = True
+
 
 USAGE_AS_MAIN = """\
 Usage: %(progName)s [options] [tests]
diff --git a/Lib/unittest/result.py b/Lib/unittest/result.py
index 746967e..91cf218 100644
--- a/Lib/unittest/result.py
+++ b/Lib/unittest/result.py
@@ -4,6 +4,8 @@
 
 from . import util
 
+__unittest = True
+
 
 class TestResult(object):
     """Holder for test result information.
@@ -98,11 +100,7 @@
         return ''.join(traceback.format_exception(exctype, value, tb))
 
     def _is_relevant_tb_level(self, tb):
-        globs = tb.tb_frame.f_globals
-        is_relevant =  '__name__' in globs and \
-            globs["__name__"].startswith("unittest")
-        del globs
-        return is_relevant
+        return '__unittest' in tb.tb_frame.f_globals
 
     def _count_relevant_tb_levels(self, tb):
         length = 0
diff --git a/Lib/unittest/runner.py b/Lib/unittest/runner.py
index 2fe01f6..f9e1995 100644
--- a/Lib/unittest/runner.py
+++ b/Lib/unittest/runner.py
@@ -5,6 +5,8 @@
 
 from . import result
 
+__unittest = True
+
 
 class _WritelnDecorator(object):
     """Used to decorate file-like objects with a handy 'writeln' method"""
diff --git a/Lib/unittest/suite.py b/Lib/unittest/suite.py
index cccc7ef..0dd2dc5 100644
--- a/Lib/unittest/suite.py
+++ b/Lib/unittest/suite.py
@@ -5,6 +5,8 @@
 from . import case
 from . import util
 
+__unittest = True
+
 
 class BaseTestSuite(object):
     """A simple test suite that doesn't provide class or module shared fixtures.
diff --git a/Lib/unittest/util.py b/Lib/unittest/util.py
index 9ddf879..7d90ddf 100644
--- a/Lib/unittest/util.py
+++ b/Lib/unittest/util.py
@@ -1,5 +1,8 @@
 """Various utility functions."""
 
+__unittest = True
+
+
 def safe_repr(obj):
     try:
         return repr(obj)
