Index: src/CompilationState.cc
===================================================================
--- src/CompilationState.cc	(revision 343d10e4df38dc88b6b77546cff30560ad7744f7)
+++ src/CompilationState.cc	(revision a77257bee9b89057fbbd5f12095d886c5be82c4c)
@@ -28,4 +28,5 @@
 	genproto = false,
 	deterministic_output = false,
+	useNewAST = true,
 	nomainp = false,
 	parsep = false,
Index: src/CompilationState.h
===================================================================
--- src/CompilationState.h	(revision 343d10e4df38dc88b6b77546cff30560ad7744f7)
+++ src/CompilationState.h	(revision a77257bee9b89057fbbd5f12095d886c5be82c4c)
@@ -29,4 +29,5 @@
 	genproto,
 	deterministic_output,
+	useNewAST,
 	nomainp,
 	parsep,
Index: src/main.cc
===================================================================
--- src/main.cc	(revision 343d10e4df38dc88b6b77546cff30560ad7744f7)
+++ src/main.cc	(revision a77257bee9b89057fbbd5f12095d886c5be82c4c)
@@ -340,9 +340,10 @@
 		} // if
 
-		// PASS( "Resolve", ResolvExpr::resolve( translationUnit ) );
-		{
+		if( useNewAST) {
 			auto transUnit = convert( move( translationUnit ) );
 			PASS( "Resolve", ResolvExpr::resolve( transUnit ) );
 			translationUnit = convert( move( transUnit ) );
+		} else {
+			PASS( "Resolve", ResolvExpr::resolve( translationUnit ) );
 		}
 
@@ -464,4 +465,6 @@
 	{ "prototypes", no_argument, nullptr, 'p' },
 	{ "deterministic-out", no_argument, nullptr, 'd' },
+	{ "old-ast", no_argument, nullptr, 'O'},
+	{ "new-ast", no_argument, nullptr, 'A'},
 	{ "print", required_argument, nullptr, 'P' },
 	{ "prelude-dir", required_argument, nullptr, PreludeDir },
@@ -485,4 +488,6 @@
 	"generate prototypes for prelude functions",		// -p
 	"don't print output that isn't deterministic",        // -d
+	"Use the old-ast",                                    // -O
+	"Use the new-ast",                                    // -A
 	"print",                                              // -P
 	"<directory> prelude directory for debug/nodebug",	// no flag
@@ -590,5 +595,11 @@
 			break;
 		  case 'd':                                     // don't print non-deterministic output
-		    deterministic_output = true;
+			deterministic_output = true;
+			break;
+		  case 'O':                                     // don't print non-deterministic output
+			useNewAST = false;
+			break;
+		  case 'A':                                     // don't print non-deterministic output
+			useNewAST = true;
 			break;
 		  case 'P':										// print options
