Index: src/ControlStruct/ForExprMutator.cc
===================================================================
--- src/ControlStruct/ForExprMutator.cc	(revision be9288a525b285ac5a849a870863a162fd3d36c7)
+++ src/ControlStruct/ForExprMutator.cc	(revision 6d49ea3165b7fb8906721da9a6f6949632d35140)
@@ -9,7 +9,7 @@
 // Author           : Rodolfo G. Esteves
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Rob Schluntz
-// Last Modified On : Tue Jul 14 12:14:44 2015
-// Update Count     : 10
+// Last Modified By : Peter A. Buhr
+// Last Modified On : Thu Aug 17 15:32:46 2017
+// Update Count     : 11
 //
 
@@ -21,4 +21,20 @@
 
 namespace ControlStruct {
+	Statement *ForExprMutator::postmutate( IfStmt *ifStmt ) {
+		std::list<Statement *> &init = ifStmt->get_initialization();
+		if ( init.size() == 0 ) {
+			return ifStmt;
+		} // if
+
+		// create compound statement, move initializers outside, leave _for_ as-is
+		CompoundStmt *block = new CompoundStmt( std::list< Label >() );
+		std::list<Statement *> &stmts = block->get_kids();
+		stmts.splice( stmts.end(), init );
+
+		// add for to the new block
+		stmts.push_back( ifStmt );
+		return block;
+	}
+
 	Statement *ForExprMutator::postmutate( ForStmt *forStmt ) {
 		// hoist any initializer declarations to make them C89 (rather than C99)
@@ -31,11 +47,8 @@
 		CompoundStmt *block = new CompoundStmt( std::list< Label >() );
 		std::list<Statement *> &stmts = block->get_kids();
-		for ( std::list<Statement *>::iterator it = init.begin(); it != init.end(); ++it ) {
-			stmts.push_back( *it );
-		}	// for
+		stmts.splice( stmts.end(), init );
 
 		// add for to the new block
 		stmts.push_back( forStmt );
-		forStmt->set_initialization( std::list<Statement *>() );
 		return block;
 	}
Index: src/ControlStruct/ForExprMutator.h
===================================================================
--- src/ControlStruct/ForExprMutator.h	(revision be9288a525b285ac5a849a870863a162fd3d36c7)
+++ src/ControlStruct/ForExprMutator.h	(revision 6d49ea3165b7fb8906721da9a6f6949632d35140)
@@ -10,10 +10,11 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Sat Jul 22 09:17:08 2017
-// Update Count     : 4
+// Last Modified On : Thu Aug 17 15:32:48 2017
+// Update Count     : 5
 //
 
 #pragma once
 
+class IfStmt;
 class ForStmt;
 class Statement;
@@ -22,4 +23,5 @@
 	class ForExprMutator {
 	  public:
+		Statement *postmutate( IfStmt * );
 		Statement *postmutate( ForStmt * );
 	};
