diff --git a/Lib/test/leakers/test_tee.py b/Lib/test/leakers/test_tee.py
index f0aa444..db2867a 100644
--- a/Lib/test/leakers/test_tee.py
+++ b/Lib/test/leakers/test_tee.py
@@ -6,20 +6,20 @@
 import gc
 
 def leak():
-  def inner():
-    def fib():
-        def yield_identity_forever(g):
-            while 1:
-                yield g
-        def _fib():
-            for i in yield_identity_forever(head):
-                yield i
-        head, tail, result = tee(_fib(), 3)
-        return result
+    def inner():
+        def fib():
+            def yield_identity_forever(g):
+                while 1:
+                    yield g
+            def _fib():
+                for i in yield_identity_forever(head):
+                    yield i
+            head, tail, result = tee(_fib(), 3)
+            return result
 
-    x = fib()
-    x.next()
-  inner()
-  gc.collect() ; gc.collect()
-  # this is expected to return 0
-  return gc.collect()
+        x = fib()
+        x.next()
+    inner()
+    gc.collect() ; gc.collect()
+    # this is expected to return 0
+    return gc.collect()
