Index: src/GenPoly/PolyMutator.cc
===================================================================
--- src/GenPoly/PolyMutator.cc	(revision 1ba88a0e455e57ec77fa646372ffd0c5ef7e999c)
+++ src/GenPoly/PolyMutator.cc	(revision dcd73d1fd6d9a98ffe2b19ad3bbf30fe9693a678)
@@ -30,9 +30,15 @@
 
 	void PolyMutator::mutateStatementList( std::list< Statement* > &statements ) {
+		SemanticError errors;
+
 		for ( std::list< Statement* >::iterator i = statements.begin(); i != statements.end(); ++i ) {
 			if ( ! stmtsToAddAfter.empty() ) {
 				statements.splice( i, stmtsToAddAfter );
 			} // if
-			*i = (*i)->acceptMutator( *this );
+			try {
+				*i = (*i)->acceptMutator( *this );
+			} catch ( SemanticError &e ) {
+				errors.append( e );
+			} // try
 			if ( ! stmtsToAdd.empty() ) {
 				statements.splice( i, stmtsToAdd );
@@ -42,4 +48,7 @@
 			statements.splice( statements.end(), stmtsToAddAfter );
 		} // if
+		if ( ! errors.isEmpty() ) {
+			throw errors;
+		}
 	}
 
