diff --git a/tools/clang-cc/SerializationTest.cpp b/tools/clang-cc/SerializationTest.cpp
index b4fd8d7..708328d 100644
--- a/tools/clang-cc/SerializationTest.cpp
+++ b/tools/clang-cc/SerializationTest.cpp
@@ -72,7 +72,8 @@
     llvm::OwningPtr<ASTConsumer> FilePrinter(CreateASTPrinter(&DeclPP));
     
     TranslationUnitDecl *TUD = Ctx.getTranslationUnitDecl();
-    for (DeclContext::decl_iterator I = TUD->decls_begin(), E =TUD->decls_end();
+    for (DeclContext::decl_iterator I = TUD->decls_begin(Ctx), 
+                                    E = TUD->decls_end(Ctx);
          I != E; ++I)
       FilePrinter->HandleTopLevelDecl(DeclGroupRef(*I));
   }
@@ -123,7 +124,8 @@
     llvm::OwningPtr<ASTConsumer> FilePrinter(CreateASTPrinter(&DeclPP));
     
     TranslationUnitDecl *TUD = NewCtx->getTranslationUnitDecl();
-    for (DeclContext::decl_iterator I = TUD->decls_begin(), E = TUD->decls_end();
+    for (DeclContext::decl_iterator I = TUD->decls_begin(*NewCtx), 
+                                    E = TUD->decls_end(*NewCtx);
          I != E; ++I)
       FilePrinter->HandleTopLevelDecl(DeclGroupRef(*I));
   }
