Index: src/InitTweak/FixInit.cc
===================================================================
--- src/InitTweak/FixInit.cc	(revision 8905f56fc5f7139d6950e2991a2f75da89c7be36)
+++ src/InitTweak/FixInit.cc	(revision 0661678d7bbe17256939fcb3df49c922bad4c73e)
@@ -896,7 +896,10 @@
 			Parent::visit( compoundStmt );
 
-			// add destructors for the current scope that we're exiting
+			// add destructors for the current scope that we're exiting, unless the last statement is a return, which
+			// causes unreachable code warnings
 			std::list< Statement * > & statements = compoundStmt->get_kids();
-			insertDtors( reverseDeclOrder.front().begin(), reverseDeclOrder.front().end(), back_inserter( statements ) );
+			if ( ! statements.empty() && ! dynamic_cast< ReturnStmt * >( statements.back() ) ) {
+				insertDtors( reverseDeclOrder.front().begin(), reverseDeclOrder.front().end(), back_inserter( statements ) );
+			}
 			reverseDeclOrder.pop_front();
 		}
