Index: src/InitTweak/FixGlobalInit.cc
===================================================================
--- src/InitTweak/FixGlobalInit.cc	(revision 6a036eb371074e8ab361d2733b169c77d8013720)
+++ src/InitTweak/FixGlobalInit.cc	(revision 293dc1c9a88a6120c9da7e8d3566ea1feae53953)
@@ -109,5 +109,5 @@
 	}
 
-	void fixGlobalInit(std::list<ast::ptr<ast::Decl>> & translationUnit, bool inLibrary) {
+	void fixGlobalInit(ast::TranslationUnit & translationUnit, bool inLibrary) {
 		ast::Pass<GlobalFixer_new> fixer;
 		accept_all(translationUnit, fixer);
@@ -119,5 +119,5 @@
 				ast::Storage::Static, ast::Linkage::C, {new ast::Attribute("constructor", std::move(ctorParams))});
 
-			translationUnit.emplace_back( initFunction );
+			translationUnit.decls.emplace_back( initFunction );
 		} // if
 
@@ -128,5 +128,5 @@
 				ast::Storage::Static, ast::Linkage::C, {new ast::Attribute("destructor", std::move(dtorParams))});
 
-			translationUnit.emplace_back(destroyFunction);
+			translationUnit.decls.emplace_back(destroyFunction);
 		} // if
 	}
Index: src/InitTweak/FixGlobalInit.h
===================================================================
--- src/InitTweak/FixGlobalInit.h	(revision 6a036eb371074e8ab361d2733b169c77d8013720)
+++ src/InitTweak/FixGlobalInit.h	(revision 293dc1c9a88a6120c9da7e8d3566ea1feae53953)
@@ -29,5 +29,5 @@
 	/// function is for library code.
 	void fixGlobalInit( std::list< Declaration * > & translationUnit, bool inLibrary );
-	void fixGlobalInit( std::list< ast::ptr<ast::Decl> > & translationUnit, bool inLibrary );
+	void fixGlobalInit( ast::TranslationUnit & translationUnit, bool inLibrary );
 } // namespace
 
Index: src/InitTweak/FixInit.h
===================================================================
--- src/InitTweak/FixInit.h	(revision 6a036eb371074e8ab361d2733b169c77d8013720)
+++ src/InitTweak/FixInit.h	(revision 293dc1c9a88a6120c9da7e8d3566ea1feae53953)
@@ -19,7 +19,8 @@
 #include <string>  // for string
 
-#include <AST/Fwd.hpp>
-
 class Declaration;
+namespace ast {
+	class TranslationUnit;
+}
 
 namespace InitTweak {
@@ -27,5 +28,5 @@
 	void fix( std::list< Declaration * > & translationUnit, bool inLibrary );
 
-	void fix( std::list<ast::ptr<ast::Decl>> & translationUnit, bool inLibrary);
+	void fix( ast::TranslationUnit & translationUnit, bool inLibrary);
 } // namespace
 
Index: src/InitTweak/FixInitNew.cpp
===================================================================
--- src/InitTweak/FixInitNew.cpp	(revision 6a036eb371074e8ab361d2733b169c77d8013720)
+++ src/InitTweak/FixInitNew.cpp	(revision 293dc1c9a88a6120c9da7e8d3566ea1feae53953)
@@ -179,5 +179,5 @@
 	/// expand each object declaration to use its constructor after it is declared.
 	struct FixInit : public ast::WithStmtsToAdd<> {
-		static void fixInitializers( std::list< ast::ptr<ast::Decl> > &translationUnit );
+		static void fixInitializers( ast::TranslationUnit &translationUnit );
 
 		const ast::DeclWithType * postvisit( const ast::ObjectDecl *objDecl );
@@ -225,5 +225,5 @@
 } // namespace
 
-void fix( std::list< ast::ptr<ast::Decl> > & translationUnit, bool inLibrary ) {
+void fix( ast::TranslationUnit & translationUnit, bool inLibrary ) {
 	ast::Pass<SelfAssignChecker>::run( translationUnit );
 
@@ -308,5 +308,5 @@
 	}
 
-	void FixInit::fixInitializers( std::list< ast::ptr<ast::Decl> > & translationUnit ) {
+	void FixInit::fixInitializers( ast::TranslationUnit & translationUnit ) {
 		ast::Pass<FixInit> fixer;
 
@@ -314,9 +314,9 @@
 		// can't use DeclMutator, because sometimes need to insert IfStmt, etc.
 		SemanticErrorException errors;
-		for ( auto i = translationUnit.begin(); i != translationUnit.end(); ++i ) {
+		for ( auto i = translationUnit.decls.begin(); i != translationUnit.decls.end(); ++i ) {
 			try {
 				// maybeAccept( *i, fixer ); translationUnit should never contain null
 				*i = (*i)->accept(fixer);
-				translationUnit.splice( i, fixer.core.staticDtorDecls );
+				translationUnit.decls.splice( i, fixer.core.staticDtorDecls );
 			} catch( SemanticErrorException &e ) {
 				errors.append( e );
