Index: src/ControlStruct/ExceptTranslate.cc
===================================================================
--- src/ControlStruct/ExceptTranslate.cc	(revision d55d7a68246b165aeaa9e161109032ddd07146d8)
+++ src/ControlStruct/ExceptTranslate.cc	(revision 244b9348208a5206055bf8b6b9f7ca5980632c50)
@@ -572,7 +572,7 @@
 			// Pass.
 		} else if ( CatchStmt::Terminate == catchStmt->get_kind() ) {
-			throw SemanticError(catchStmt->location, "catch must have exception type");
+			SemanticError(catchStmt->location, "catch must have exception type");
 		} else {
-			throw SemanticError(catchStmt->location, "catchResume must have exception type");
+			SemanticError(catchStmt->location, "catchResume must have exception type");
 		}
 
Index: src/ControlStruct/LabelFixer.cc
===================================================================
--- src/ControlStruct/LabelFixer.cc	(revision d55d7a68246b165aeaa9e161109032ddd07146d8)
+++ src/ControlStruct/LabelFixer.cc	(revision 244b9348208a5206055bf8b6b9f7ca5980632c50)
@@ -92,5 +92,5 @@
 			} else if ( labelTable[ l ]->defined() ) {
 				// defined twice, error
-				throw SemanticError( l.get_statement()->location, "Duplicate definition of label: " + l.get_name() );
+				SemanticError( l.get_statement()->location, "Duplicate definition of label: " + l.get_name() );
 			}	else {
 				// used previously, but undefined until now -> link with this entry
@@ -117,9 +117,9 @@
 
 	// Builds a table that maps a label to its defining statement.
-	std::map<Label, Statement * > *LabelFixer::resolveJumps() throw ( SemanticError ) {
+	std::map<Label, Statement * > *LabelFixer::resolveJumps() throw ( SemanticErrorException ) {
 		std::map< Label, Statement * > *ret = new std::map< Label, Statement * >();
 		for ( std::map< Label, Entry * >::iterator i = labelTable.begin(); i != labelTable.end(); ++i ) {
 			if ( ! i->second->defined() ) {
-				throw SemanticError( i->first.get_statement()->location, "Use of undefined label: " + i->first.get_name() );
+				SemanticError( i->first.get_statement()->location, "Use of undefined label: " + i->first.get_name() );
 			}
 			(*ret)[ i->first ] = i->second->get_definition();
Index: src/ControlStruct/LabelFixer.h
===================================================================
--- src/ControlStruct/LabelFixer.h	(revision d55d7a68246b165aeaa9e161109032ddd07146d8)
+++ src/ControlStruct/LabelFixer.h	(revision 244b9348208a5206055bf8b6b9f7ca5980632c50)
@@ -33,5 +33,5 @@
 		LabelFixer( LabelGenerator *gen = 0 );
 
-		std::map < Label, Statement * > *resolveJumps() throw ( SemanticError );
+		std::map < Label, Statement * > *resolveJumps() throw ( SemanticErrorException );
 
 		// Declarations
Index: src/ControlStruct/MLEMutator.cc
===================================================================
--- src/ControlStruct/MLEMutator.cc	(revision d55d7a68246b165aeaa9e161109032ddd07146d8)
+++ src/ControlStruct/MLEMutator.cc	(revision 244b9348208a5206055bf8b6b9f7ca5980632c50)
@@ -98,5 +98,5 @@
 
 
-	Statement *MLEMutator::postmutate( BranchStmt *branchStmt ) throw ( SemanticError ) {
+	Statement *MLEMutator::postmutate( BranchStmt *branchStmt ) throw ( SemanticErrorException ) {
 		std::string originalTarget = branchStmt->originalTarget;
 
@@ -115,5 +115,5 @@
 					} else {
 						// break target is outmost control structure
-						if ( enclosingControlStructures.empty() ) throw SemanticError( branchStmt->location, "'break' outside a loop, switch, or labelled block" );
+						if ( enclosingControlStructures.empty() ) SemanticError( branchStmt->location, "'break' outside a loop, switch, or labelled block" );
 						targetEntry = enclosingControlStructures.rbegin();
 					} // if
@@ -124,5 +124,5 @@
 				// ensure that selected target is valid
 				if ( targetEntry == enclosingControlStructures.rend() || (isContinue && ! isLoop( targetEntry->get_controlStructure() ) ) ) {
-					throw SemanticError( branchStmt->location, toString( (isContinue ? "'continue'" : "'break'"), " target must be an enclosing ", (isContinue ? "loop: " : "control structure: "), originalTarget ) );
+					SemanticError( branchStmt->location, toString( (isContinue ? "'continue'" : "'break'"), " target must be an enclosing ", (isContinue ? "loop: " : "control structure: "), originalTarget ) );
 				} // if
 				break;
Index: src/ControlStruct/MLEMutator.h
===================================================================
--- src/ControlStruct/MLEMutator.h	(revision d55d7a68246b165aeaa9e161109032ddd07146d8)
+++ src/ControlStruct/MLEMutator.h	(revision 244b9348208a5206055bf8b6b9f7ca5980632c50)
@@ -37,5 +37,5 @@
 
 		void premutate( CompoundStmt *cmpndStmt );
-		Statement * postmutate( BranchStmt *branchStmt ) throw ( SemanticError );
+		Statement * postmutate( BranchStmt *branchStmt ) throw ( SemanticErrorException );
 		void premutate( WhileStmt *whileStmt );
 		Statement * postmutate( WhileStmt *whileStmt );
Index: src/ControlStruct/Mutate.cc
===================================================================
--- src/ControlStruct/Mutate.cc	(revision d55d7a68246b165aeaa9e161109032ddd07146d8)
+++ src/ControlStruct/Mutate.cc	(revision 244b9348208a5206055bf8b6b9f7ca5980632c50)
@@ -18,5 +18,4 @@
 
 #include "Common/PassVisitor.h"    // for mutateAll
-#include "Common/SemanticError.h"  // for SemanticError
 #include "ForExprMutator.h"        // for ForExprMutator
 #include "LabelFixer.h"            // for LabelFixer
