diff --git a/tests/basics/builtin_override.py b/tests/basics/builtin_override.py
index 9f91341edd8aded6902ca53959cd1ff56f22117a..e3cf9165fcb2d39a650a2fa7726998a3417ed992 100644
--- a/tests/basics/builtin_override.py
+++ b/tests/basics/builtin_override.py
@@ -12,7 +12,25 @@ except AttributeError:
 print(abs(1))
 
 # __build_class__ is handled in a special way
+orig_build_class = __build_class__
 builtins.__build_class__ = lambda x, y: ('class', y)
 class A:
     pass
 print(A)
+builtins.__build_class__ = orig_build_class
+
+# __import__ is handled in a special way
+def custom_import(name, globals, locals, fromlist, level):
+    print('import', name, fromlist, level)
+    class M:
+        a = 1
+        b = 2
+    return M
+builtins.__import__ = custom_import
+__import__('A', None, None, None, 0)
+import a
+import a.b
+from a import a
+from a.b import a, b
+from .a import a
+from ..a import a, b
diff --git a/tests/import/import_override.py b/tests/import/import_override.py
new file mode 100644
index 0000000000000000000000000000000000000000..6fe99009ee1401cf6ede4d0e9c51a89be1795d30
--- /dev/null
+++ b/tests/import/import_override.py
@@ -0,0 +1,17 @@
+# test overriding __import__ combined with importing from the filesystem
+
+def custom_import(name, globals, locals, fromlist, level):
+    print('import', name, fromlist, level)
+    class M:
+        var = 456
+    return M
+
+orig_import = __import__
+try:
+    __import__("builtins").__import__ = custom_import
+except AttributeError:
+    print("SKIP")
+    raise SystemExit
+
+# import1a will be done via normal import which will import1b via our custom import
+orig_import('import1a')