Index: src/ControlStruct/FixLabels.cpp
===================================================================
--- src/ControlStruct/FixLabels.cpp	(revision 817bb3caacea2f610a325e8437fdf9ef7f30b2b2)
+++ src/ControlStruct/FixLabels.cpp	(revision de31a1dab64197e0a0c855f9f84cc2ad2ea6d9f5)
@@ -28,9 +28,9 @@
 class FixLabelsCore final : public ast::WithGuards {
 	LabelToStmt labelTable;
-	LabelGenerator_new * label_gen;
+	LabelGenerator * label_gen;
 public:
-	FixLabelsCore( LabelGenerator_new * gen = nullptr ) :
+	FixLabelsCore( LabelGenerator * gen = nullptr ) :
 		labelTable(),
-		label_gen( gen ? gen : LabelGenerator_new::getGenerator() )
+		label_gen( gen ? gen : LabelGenerator::getGenerator() )
 	{}
 
Index: src/ControlStruct/LabelGenerator.cc
===================================================================
--- src/ControlStruct/LabelGenerator.cc	(revision 817bb3caacea2f610a325e8437fdf9ef7f30b2b2)
+++ src/ControlStruct/LabelGenerator.cc	(revision de31a1dab64197e0a0c855f9f84cc2ad2ea6d9f5)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Andrew Beach
-// Last Modified On : Mon Nov  1 12:21:00 2021
-// Update Count     : 16
+// Last Modified On : Mon Nov  8 10:18:00 2021
+// Update Count     : 17
 //
 
@@ -28,5 +28,7 @@
 
 namespace ControlStruct {
-	LabelGenerator * LabelGenerator::labelGenerator = 0;
+
+int LabelGenerator::current = 0;
+LabelGenerator * LabelGenerator::labelGenerator = nullptr;
 
 	LabelGenerator * LabelGenerator::getGenerator() {
@@ -48,14 +50,5 @@
 	}
 
-LabelGenerator_new * LabelGenerator_new::labelGenerator = nullptr;
-
-LabelGenerator_new * LabelGenerator_new::getGenerator() {
-	if ( nullptr == labelGenerator ) {
-		labelGenerator = new LabelGenerator_new();
-	}
-	return labelGenerator;
-}
-
-ast::Label LabelGenerator_new::newLabel(
+ast::Label LabelGenerator::newLabel(
 		const std::string & suffix, const ast::Stmt * stmt ) {
 	assert( stmt );
Index: src/ControlStruct/LabelGenerator.h
===================================================================
--- src/ControlStruct/LabelGenerator.h	(revision 817bb3caacea2f610a325e8437fdf9ef7f30b2b2)
+++ src/ControlStruct/LabelGenerator.h	(revision de31a1dab64197e0a0c855f9f84cc2ad2ea6d9f5)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Andrew Beach
-// Last Modified On : Mon Nov  1 12:19:00 2021
-// Update Count     : 7
+// Last Modified On : Mon Nov  8 10:16:00 2021
+// Update Count     : 8
 //
 
@@ -27,28 +27,16 @@
 
 namespace ControlStruct {
-	class LabelGenerator {
-	  public:
-		static LabelGenerator *getGenerator();
-		Label newLabel(std::string suffix, Statement * stmt = nullptr);
-		void reset() { current = 0; }
-		void rewind() { current--; }
-	  protected:
-		LabelGenerator(): current(0) {}
-	  private:
-		int current;
-		static LabelGenerator *labelGenerator;
-	};
 
-class LabelGenerator_new {
-	int current;
-	static LabelGenerator_new *labelGenerator;
-
-	LabelGenerator_new() : current(0) {}
+class LabelGenerator {
+	static int current;
+	static LabelGenerator *labelGenerator;
+protected:
+	LabelGenerator() {}
 public:
-	static LabelGenerator_new *getGenerator();
-
-	ast::Label newLabel( const std::string& suffix, const ast::Stmt * stmt );
-	void reset() { current = 0; }
-	void rewind() { --current; }
+	static LabelGenerator *getGenerator();
+	static Label newLabel(std::string suffix, Statement * stmt = nullptr);
+	static ast::Label newLabel( const std::string&, const ast::Stmt * );
+	static void reset() { current = 0; }
+	static void rewind() { current--; }
 };
 
Index: src/ControlStruct/MultiLevelExit.cpp
===================================================================
--- src/ControlStruct/MultiLevelExit.cpp	(revision 817bb3caacea2f610a325e8437fdf9ef7f30b2b2)
+++ src/ControlStruct/MultiLevelExit.cpp	(revision de31a1dab64197e0a0c855f9f84cc2ad2ea6d9f5)
@@ -105,5 +105,5 @@
 		public ast::WithVisitorRef<MultiLevelExitCore>,
 		public ast::WithShortCircuiting, public ast::WithGuards {
-	MultiLevelExitCore( const LabelToStmt & lt, LabelGenerator_new * lg );
+	MultiLevelExitCore( const LabelToStmt & lt, LabelGenerator * lg );
 
 	void previsit( const ast::FunctionDecl * );
@@ -131,5 +131,5 @@
 	std::vector<Entry> enclosing_control_structures;
 	ast::Label break_label;
-	LabelGenerator_new * label_gen;
+	LabelGenerator * label_gen;
 	bool inFinally;
 
@@ -155,5 +155,5 @@
 
 MultiLevelExitCore::MultiLevelExitCore(
-		const LabelToStmt & lt, LabelGenerator_new * lg ) :
+		const LabelToStmt & lt, LabelGenerator * lg ) :
 	target_table( lt ), break_label( CodeLocation(), "" ), label_gen( lg ),
 	inFinally( false )
@@ -608,5 +608,5 @@
     	const ast::CompoundStmt * stmt,
 		const LabelToStmt & labelTable,
-		LabelGenerator_new * labelGen ) {
+		LabelGenerator * labelGen ) {
 	// Must start in the body, so FunctionDecls can be a stopping point.
 	ast::Pass<MultiLevelExitCore> visitor( labelTable, labelGen );
Index: src/ControlStruct/MultiLevelExit.hpp
===================================================================
--- src/ControlStruct/MultiLevelExit.hpp	(revision 817bb3caacea2f610a325e8437fdf9ef7f30b2b2)
+++ src/ControlStruct/MultiLevelExit.hpp	(revision de31a1dab64197e0a0c855f9f84cc2ad2ea6d9f5)
@@ -26,10 +26,10 @@
 namespace ControlStruct {
 
-class LabelGenerator_new;
+class LabelGenerator;
 using LabelToStmt = std::map<ast::Label, const ast::Stmt *>;
 
 /// Mutate a function body to handle multi-level exits.
 const ast::CompoundStmt * multiLevelExitUpdate(
-	const ast::CompoundStmt *, const LabelToStmt &, LabelGenerator_new *);
+	const ast::CompoundStmt *, const LabelToStmt &, LabelGenerator *);
 
 }
