Index: src/Validate/ImplementEnumFunc.hpp
===================================================================
--- src/Validate/ImplementEnumFunc.hpp	(revision 6d2b3dcd9e518ea112923a8e83105ce7a4a77fd6)
+++ src/Validate/ImplementEnumFunc.hpp	(revision 39cf5ccd10f859ae4cc6a255f0dc30dbbfab0467)
@@ -2,8 +2,12 @@
 
 namespace ast {
-    class TranslationUnit;
+	class TranslationUnit;
 }
 
 namespace Validate {
-    void implementEnumFunc( ast::TranslationUnit & translationUnit );
+
+/// Auto-Generation of enumeration functions.
+/// Happens before fixReturnStatements because it inserts "unfixed" returns.
+void implementEnumFunc( ast::TranslationUnit & translationUnit );
+
 }
Index: src/main.cpp
===================================================================
--- src/main.cpp	(revision 6d2b3dcd9e518ea112923a8e83105ce7a4a77fd6)
+++ src/main.cpp	(revision 39cf5ccd10f859ae4cc6a255f0dc30dbbfab0467)
@@ -320,5 +320,4 @@
 		PASS( "Forall Pointer Decay", Validate::decayForallPointers, transUnit );
 		PASS( "Fix Qualified Types", Validate::fixQualifiedTypes, transUnit );
-
 		PASS( "Eliminate Typedef", Validate::eliminateTypedef, transUnit );
 		PASS( "Hoist Struct", Validate::hoistStruct, transUnit );
@@ -326,6 +325,4 @@
 		PASS( "Translate Enum Range Expression", ControlStruct::translateEnumRange, transUnit );
 		PASS( "Translate Dimensions", Validate::translateDimensionParameters, transUnit );
-		// Need to happen before fixing returns because implementEnumFunc has ReturnStmt
-		
 		PASS( "Generate Enum Attributes Functions", Validate::implementEnumFunc, transUnit );
 		PASS( "Check Function Returns", Validate::checkReturnStatements, transUnit );
@@ -337,5 +334,5 @@
 
 		PASS( "Generate Autogen Routines", Validate::autogenerateRoutines, transUnit );
-		
+
 		PASS( "Implement Actors", Concurrency::implementActors, transUnit );
 		PASS( "Implement Virtual Destructors", Virtual::implementVirtDtors, transUnit );
@@ -456,4 +453,11 @@
 		return EXIT_FAILURE;
 	} // try
+
+	// This pseudo-pass is used to get more accurate heap statistics.
+	NewPass("Clean-up");
+	Stats::Time::StartBlock("Clean-Up");
+	transUnit.global = ast::TranslationGlobal();
+	transUnit.decls.clear();
+	Stats::Time::StopBlock();
 
 	Stats::print();
