diff --git a/Lib/test/test_import_magic.py b/Lib/test/test_import_magic.py
new file mode 100644
index 0000000..92f68b4
--- /dev/null
+++ b/Lib/test/test_import_magic.py
@@ -0,0 +1,58 @@
+import imp
+import sys
+
+import unittest
+
+# Note:
+#   In Python 3.x, this test case is in Lib/test/test_importlib/test_util.py
+
+class MagicNumberTests(unittest.TestCase):
+    """
+    Test release compatibility issues relating to precompiled bytecode
+    """
+    @unittest.skipUnless(
+        sys.version_info.releaselevel in ('final', 'release'),
+        'only applies to candidate or final python release levels'
+    )
+    def test_magic_number(self):
+        """
+        Each python minor release should generally have a MAGIC_NUMBER
+        that does not change once the release reaches candidate status.
+
+        Once a release reaches candidate status, the value of the constant
+        EXPECTED_MAGIC_NUMBER in this test should be changed.
+        This test will then check that the actual MAGIC_NUMBER matches
+        the expected value for the release.
+
+        In exceptional cases, it may be required to change the MAGIC_NUMBER
+        for a maintenance release. In this case the change should be
+        discussed in python-dev. If a change is required, community
+        stakeholders such as OS package maintainers must be notified
+        in advance. Such exceptional releases will then require an
+        adjustment to this test case.
+        """
+        EXPECTED_MAGIC_NUMBER = 62211
+        raw_magic = imp.get_magic()
+        actual = (ord(raw_magic[1]) << 8) + ord(raw_magic[0])
+
+        msg = (
+            "To avoid breaking backwards compatibility with cached bytecode "
+            "files that can't be automatically regenerated by the current "
+            "user, candidate and final releases require the current  "
+            "importlib.util.MAGIC_NUMBER to match the expected "
+            "magic number in this test. Set the expected "
+            "magic number in this test to the current MAGIC_NUMBER to "
+            "continue with the release.\n\n"
+            "Changing the MAGIC_NUMBER for a maintenance release "
+            "requires discussion in python-dev and notification of "
+            "community stakeholders."
+        )
+        self.assertEqual(EXPECTED_MAGIC_NUMBER, actual)#, msg)
+
+
+def test_main():
+    from test.support import run_unittest
+    run_unittest(MagicNumberTests)
+
+if __name__ == '__main__':
+    test_main()
