Index: src/ControlStruct/MLEMutator.cc
===================================================================
--- src/ControlStruct/MLEMutator.cc	(revision 152c2b2495f95d3439eb15f85f3d8bcaacf76d24)
+++ src/ControlStruct/MLEMutator.cc	(revision 397c101ac3d4d5036b990774a5ad5b6598528e82)
@@ -231,12 +231,10 @@
 
 	Statement *MLEMutator::mutateLoop( Statement *bodyLoop, Entry &e ) {
+		// only generate these when needed
+		if( !e.isContUsed() && !e.isBreakUsed() ) return bodyLoop;
+
 		// ensure loop body is a block
-		CompoundStmt *newBody;
-		if ( ! (newBody = dynamic_cast<CompoundStmt *>( bodyLoop )) ) {
-			newBody = new CompoundStmt();
-			newBody->get_kids().push_back( bodyLoop );
-		} // if
-
-		// only generate these when needed
+		CompoundStmt * newBody = new CompoundStmt();
+		newBody->get_kids().push_back( bodyLoop );
 
 		if ( e.isContUsed() ) {
Index: tests/raii/dtor-early-exit.cfa
===================================================================
--- tests/raii/dtor-early-exit.cfa	(revision 152c2b2495f95d3439eb15f85f3d8bcaacf76d24)
+++ tests/raii/dtor-early-exit.cfa	(revision 397c101ac3d4d5036b990774a5ad5b6598528e82)
@@ -217,4 +217,12 @@
 }
 
+void i() {
+	// potential loop
+	for() {
+		if(true) continue;
+		int t = 0;
+	}
+}
+
 // TODO: implement __label__ and uncomment these lines
 void computedGoto() {
