Index: src/ControlStruct/ExceptTranslate.cc
===================================================================
--- src/ControlStruct/ExceptTranslate.cc	(revision d48e529cc868a651ee3760fbd3cf7b1570a205b4)
+++ src/ControlStruct/ExceptTranslate.cc	(revision ba3706fcc236a2f6c927dc1a9da14313751a7aa4)
@@ -30,5 +30,5 @@
 #include "SynTree/Expression.h"       // for UntypedExpr, ConstantExpr, Name...
 #include "SynTree/Initializer.h"      // for SingleInit, ListInit
-#include "SynTree/Label.h"            // for Label, noLabels
+#include "SynTree/Label.h"            // for Label
 #include "SynTree/Mutator.h"          // for mutateAll
 #include "SynTree/Statement.h"        // for CompoundStmt, CatchStmt, ThrowStmt
@@ -57,5 +57,5 @@
 
 	void appendDeclStmt( CompoundStmt * block, Declaration * item ) {
-		block->push_back(new DeclStmt(noLabels, item));
+		block->push_back(new DeclStmt(item));
 	}
 
@@ -205,5 +205,5 @@
 		throwStmt->set_expr( nullptr );
 		delete throwStmt;
-		return new ExprStmt( noLabels, call );
+		return new ExprStmt( call );
 	}
 
@@ -220,6 +220,7 @@
 		assert( handler_except_decl );
 
-		CompoundStmt * result = new CompoundStmt( throwStmt->get_labels() );
-		result->push_back( new ExprStmt( noLabels, UntypedExpr::createAssign(
+		CompoundStmt * result = new CompoundStmt();
+		result->labels =  throwStmt->labels;
+		result->push_back( new ExprStmt( UntypedExpr::createAssign(
 			nameOf( handler_except_decl ),
 			new ConstantExpr( Constant::null(
@@ -231,5 +232,4 @@
 			) ) );
 		result->push_back( new ExprStmt(
-			noLabels,
 			new UntypedExpr( new NameExpr( "__cfaehm__rethrow_terminate" ) )
 			) );
@@ -248,7 +248,7 @@
 		// return false;
 		Statement * result = new ReturnStmt(
-			throwStmt->get_labels(),
 			new ConstantExpr( Constant::from_bool( false ) )
 			);
+		result->labels = throwStmt->labels;
 		delete throwStmt;
 		return result;
@@ -291,5 +291,5 @@
 			// }
 			// return;
-			CompoundStmt * block = new CompoundStmt( noLabels );
+			CompoundStmt * block = new CompoundStmt();
 
 			// Just copy the exception value. (Post Validation)
@@ -304,5 +304,5 @@
 					) })
 				);
-			block->push_back( new DeclStmt( noLabels, local_except ) );
+			block->push_back( new DeclStmt( local_except ) );
 
 			// Add the cleanup attribute.
@@ -324,7 +324,6 @@
 
 			std::list<Statement *> caseBody
-					{ block, new ReturnStmt( noLabels, nullptr ) };
+					{ block, new ReturnStmt( nullptr ) };
 			handler_wrappers.push_back( new CaseStmt(
-				noLabels,
 				new ConstantExpr( Constant::from_int( index ) ),
 				caseBody
@@ -340,9 +339,8 @@
 
 		SwitchStmt * handler_lookup = new SwitchStmt(
-			noLabels,
 			nameOf( index_obj ),
 			stmt_handlers
 			);
-		CompoundStmt * body = new CompoundStmt( noLabels );
+		CompoundStmt * body = new CompoundStmt();
 		body->push_back( handler_lookup );
 
@@ -363,5 +361,5 @@
 		// }
 
-		CompoundStmt * block = new CompoundStmt( noLabels );
+		CompoundStmt * block = new CompoundStmt();
 
 		// Local Declaration
@@ -369,5 +367,5 @@
 			dynamic_cast<ObjectDecl *>( modded_handler->get_decl() );
 		assert( local_except );
-		block->push_back( new DeclStmt( noLabels, local_except ) );
+		block->push_back( new DeclStmt( local_except ) );
 
 		// Check for type match.
@@ -381,5 +379,5 @@
 		}
 		// Construct the match condition.
-		block->push_back( new IfStmt( noLabels,
+		block->push_back( new IfStmt(
 			cond, modded_handler->get_body(), nullptr ) );
 
@@ -397,5 +395,5 @@
 		// }
 
-		CompoundStmt * body = new CompoundStmt( noLabels );
+		CompoundStmt * body = new CompoundStmt();
 
 		FunctionType * func_type = match_func_t.clone();
@@ -413,5 +411,5 @@
 
 			// Create new body.
-			handler->set_body( new ReturnStmt( noLabels,
+			handler->set_body( new ReturnStmt(
 				new ConstantExpr( Constant::from_int( index ) ) ) );
 
@@ -421,5 +419,5 @@
 		}
 
-		body->push_back( new ReturnStmt( noLabels,
+		body->push_back( new ReturnStmt(
 			new ConstantExpr( Constant::from_int( 0 ) ) ) );
 
@@ -441,6 +439,6 @@
 		args.push_back( nameOf( terminate_match ) );
 
-		CompoundStmt * callStmt = new CompoundStmt( noLabels );
-		callStmt->push_back( new ExprStmt( noLabels, caller ) );
+		CompoundStmt * callStmt = new CompoundStmt();
+		callStmt->push_back( new ExprStmt( caller ) );
 		return callStmt;
 	}
@@ -451,5 +449,5 @@
 		//     HANDLER WRAPPERS { `hander->body`; return true; }
 		// }
-		CompoundStmt * body = new CompoundStmt( noLabels );
+		CompoundStmt * body = new CompoundStmt();
 
 		FunctionType * func_type = handle_func_t.clone();
@@ -464,8 +462,8 @@
 				dynamic_cast<CompoundStmt*>( handler->get_body() );
 			if ( ! handling_code ) {
-				handling_code = new CompoundStmt( noLabels );
+				handling_code = new CompoundStmt();
 				handling_code->push_back( handler->get_body() );
 			}
-			handling_code->push_back( new ReturnStmt( noLabels,
+			handling_code->push_back( new ReturnStmt(
 				new ConstantExpr( Constant::from_bool( true ) ) ) );
 			handler->set_body( handling_code );
@@ -476,5 +474,5 @@
 		}
 
-		body->push_back( new ReturnStmt( noLabels,
+		body->push_back( new ReturnStmt(
 			new ConstantExpr( Constant::from_bool( false ) ) ) );
 
@@ -486,5 +484,5 @@
 			Statement * wraps,
 			FunctionDecl * resume_handler ) {
-		CompoundStmt * body = new CompoundStmt( noLabels );
+		CompoundStmt * body = new CompoundStmt();
 
 		// struct __try_resume_node __resume_node
@@ -521,5 +519,5 @@
 		setup->get_args().push_back( nameOf( resume_handler ) );
 
-		body->push_back( new ExprStmt( noLabels, setup ) );
+		body->push_back( new ExprStmt( setup ) );
 
 		body->push_back( wraps );
@@ -646,5 +644,5 @@
 		// Generate a prefix for the function names?
 
-		CompoundStmt * block = new CompoundStmt( noLabels );
+		CompoundStmt * block = new CompoundStmt();
 		CompoundStmt * inner = take_try_block( tryStmt );
 
Index: src/ControlStruct/ForExprMutator.cc
===================================================================
--- src/ControlStruct/ForExprMutator.cc	(revision d48e529cc868a651ee3760fbd3cf7b1570a205b4)
+++ src/ControlStruct/ForExprMutator.cc	(revision ba3706fcc236a2f6c927dc1a9da14313751a7aa4)
@@ -29,5 +29,5 @@
 		// Create compound statement, move initializers outside,
 		// the resut of the original stays as is.
-		CompoundStmt *block = new CompoundStmt( std::list< Label >() );
+		CompoundStmt *block = new CompoundStmt();
 		std::list<Statement *> &stmts = block->get_kids();
 		stmts.splice( stmts.end(), init );
Index: src/ControlStruct/MLEMutator.cc
===================================================================
--- src/ControlStruct/MLEMutator.cc	(revision d48e529cc868a651ee3760fbd3cf7b1570a205b4)
+++ src/ControlStruct/MLEMutator.cc	(revision ba3706fcc236a2f6c927dc1a9da14313751a7aa4)
@@ -149,6 +149,7 @@
 
 			if ( CaseStmt * c = dynamic_cast< CaseStmt * >( statements.back() ) ) {
-				std::list<Label> temp; temp.push_back( brkLabel );
-				c->get_statements().push_back( new BranchStmt( temp, Label("brkLabel"), BranchStmt::Break ) );
+				Statement * stmt = new BranchStmt( Label("brkLabel"), BranchStmt::Break );
+				stmt->labels.push_back( brkLabel );
+				c->get_statements().push_back( stmt );
 			} else assert(0); // as of this point, all statements of a switch are still CaseStmts
 		} // if
@@ -232,5 +233,5 @@
 		// transform break/continue statements into goto to simplify later handling of branches
 		delete branchStmt;
-		return new BranchStmt( std::list<Label>(), exitLabel, BranchStmt::Goto );
+		return new BranchStmt( exitLabel, BranchStmt::Goto );
 	}
 
@@ -239,5 +240,5 @@
 		CompoundStmt *newBody;
 		if ( ! (newBody = dynamic_cast<CompoundStmt *>( bodyLoop )) ) {
-			newBody = new CompoundStmt( std::list< Label >() );
+			newBody = new CompoundStmt();
 			newBody->get_kids().push_back( bodyLoop );
 		} // if
