Index: src/ControlStruct/ForExprMutator.cc
===================================================================
--- src/ControlStruct/ForExprMutator.cc	(revision 0a0a65b5f4350f6944a83b488d01c51bd4882e98)
+++ src/ControlStruct/ForExprMutator.cc	(revision 145f1fc837f3fe2237a52a1c4d10dfa54a209da5)
@@ -9,7 +9,7 @@
 // Author           : Rodolfo G. Esteves
 // Created On       : Mon May 18 07:44:20 2015
-// Last Modified By : Peter A. Buhr
-// Last Modified On : Tue May 19 15:31:47 2015
-// Update Count     : 2
+// Last Modified By : Rob Schluntz
+// Last Modified On : Tue Jul 14 12:14:44 2015
+// Update Count     : 10
 //
 
@@ -22,15 +22,21 @@
 		// recurse down all nest for loops to hoist any initializer declarations to make them C89 (rather than C99)
 		forStmt->set_body( forStmt->get_body()->acceptMutator( *this ) );
-		if ( DeclStmt *decl = dynamic_cast< DeclStmt * > ( forStmt->get_initialization() ) ) {
-			// create compound statement, move initializer declaration outside, leave _for_ as-is
-			CompoundStmt *block = new CompoundStmt( std::list< Label >() );
-			std::list<Statement *> &stmts = block->get_kids();
 
-			stmts.push_back( decl );
-			forStmt->set_initialization( 0 );
-			stmts.push_back( forStmt );
+		std::list<Statement *> &init = forStmt->get_initialization(); 
+		if ( init.size() == 0 ) {
+			return forStmt;
+		} // if
 
-			return block;
-		} // 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();
+		for ( std::list<Statement *>::iterator it = init.begin(); it != init.end(); ++it ) {
+			stmts.push_back( *it );
+		}	// for
+
+		// add for to the new block
+		stmts.push_back( forStmt );
+		forStmt->set_initialization( std::list<Statement *>() );
+		return block;
 
 		return forStmt;
Index: src/ControlStruct/Mutate.cc
===================================================================
--- src/ControlStruct/Mutate.cc	(revision 0a0a65b5f4350f6944a83b488d01c51bd4882e98)
+++ src/ControlStruct/Mutate.cc	(revision 145f1fc837f3fe2237a52a1c4d10dfa54a209da5)
@@ -10,6 +10,6 @@
 // Created On       : Mon May 18 07:44:20 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Jun 03 23:08:43 2015
-// Update Count     : 5
+// Last Modified On : Wed Jul 15 14:50:04 2015
+// Update Count     : 7
 //
 
@@ -36,5 +36,6 @@
 namespace ControlStruct {
 	void mutate( std::list< Declaration * > translationUnit ) {
-		// ForExprMutator formut;
+		// hoist initialization out of for statements
+		ForExprMutator formut;
 
 		// normalizes label definitions and generates multi-level
@@ -51,5 +52,5 @@
 		// LabelTypeChecker lbl;
 
-		// mutateAll( translationUnit, formut );
+		mutateAll( translationUnit, formut );
 		acceptAll( translationUnit, lfix );
 		mutateAll( translationUnit, chmut );
