@@ -173,7 +173,10 @@ public class ForStatement : Statement, ILoopStatement {
                 init,
                 Ast.TryFinally(
                     ls,
-                    Ast.Call(AstMethods.ForLoopDispose, enumerator)
+                    Ast.Block(
+                        Ast.Call(AstMethods.ForLoopDispose, enumerator),
+                        Ast.Assign(enumerator, Ast.New(typeof(KeyValuePair<IEnumerator, IDisposable>)))
+                    )
                 )
             );
         }