diff --git a/Lib/test/test_exceptions.py b/Lib/test/test_exceptions.py
index 6075b8d..c7de97c 100644
--- a/Lib/test/test_exceptions.py
+++ b/Lib/test/test_exceptions.py
@@ -564,27 +564,6 @@
             pass
         self.assertEquals(e, (None, None, None))
 
-    def test_3118(self):
-        def gen():
-            try:
-                yield 1
-            finally:
-                pass
-
-        def f():
-            g = gen()
-            next(g)
-            try:
-                try:
-                    raise ValueError
-                except:
-                    del g
-                    raise KeyError
-            except Exception as e:
-                self.assert_(isinstance(e.__context__, ValueError))
-
-        f()
-
 
     def test_badisinstance(self):
         # Bug #2542: if issubclass(e, MyException) raises an exception,
diff --git a/Lib/test/test_raise.py b/Lib/test/test_raise.py
index ba9cfc5..4537e9a 100644
--- a/Lib/test/test_raise.py
+++ b/Lib/test/test_raise.py
@@ -302,6 +302,28 @@
         except NameError as e:
             self.failUnless(e.__context__.__context__ is None)
 
+    def test_3118(self):
+        # deleting the generator caused the __context__ to be cleared
+        def gen():
+            try:
+                yield 1
+            finally:
+                pass
+
+        def f():
+            g = gen()
+            next(g)
+            try:
+                try:
+                    raise ValueError
+                except:
+                    del g
+                    raise KeyError
+            except Exception as e:
+                self.assert_(isinstance(e.__context__, ValueError))
+
+        f()
+
 
 class TestRemovedFunctionality(unittest.TestCase):
     def test_tuples(self):
