Index: src/Validate/ImplementEnumFunc.hpp
===================================================================
--- src/Validate/ImplementEnumFunc.hpp	(revision 597f28439bb7a7c7930eaafb31d0f41a67c2fd6c)
+++ src/Validate/ImplementEnumFunc.hpp	(revision 7fe4adbb9b6817b4a0fb1a558d04538aec2b7754)
@@ -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 597f28439bb7a7c7930eaafb31d0f41a67c2fd6c)
+++ src/main.cpp	(revision 7fe4adbb9b6817b4a0fb1a558d04538aec2b7754)
@@ -326,6 +326,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 +335,5 @@
 
 		PASS( "Generate Autogen Routines", Validate::autogenerateRoutines, transUnit );
-		
+
 		PASS( "Implement Actors", Concurrency::implementActors, transUnit );
 		PASS( "Implement Virtual Destructors", Virtual::implementVirtDtors, transUnit );
@@ -456,4 +454,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();
