only clear a module's __dict__ if the module is the only one with a reference to it #7140
diff --git a/Lib/test/test_module.py b/Lib/test/test_module.py
index 80d440d..638f55b 100644
--- a/Lib/test/test_module.py
+++ b/Lib/test/test_module.py
@@ -55,6 +55,14 @@
               {"__name__": "foo", "__doc__": "foodoc", "bar": 42})
         self.assertTrue(foo.__dict__ is d)
 
+    def test_dont_clear_dict(self):
+        # See issue 7140.
+        def f():
+            foo = ModuleType("foo")
+            foo.bar = 4
+            return foo
+        self.assertEqual(f().__dict__["bar"], 4)
+
 def test_main():
     run_unittest(ModuleTests)