Index: src/InitTweak/FixInit.cc
===================================================================
--- src/InitTweak/FixInit.cc	(revision e39aa0f16322a921d6a17d13906cfd8c8ffca0d9)
+++ src/InitTweak/FixInit.cc	(revision 4b2589a5585c447a4b3ff6c5524c919a032e22a4)
@@ -496,4 +496,5 @@
 
 		void ObjDeclCollector::visit( DeclStmt *stmt ) {
+			// keep track of all variables currently in scope
 			if ( ObjectDecl * objDecl = dynamic_cast< ObjectDecl * > ( stmt->get_decl() ) ) {
 				curVars.insert( objDecl );
@@ -503,4 +504,5 @@
 
 		void LabelFinder::handleStmt( Statement * stmt ) {
+			// for each label, remember the variables in scope at that label.
 			for ( Label l : stmt->get_labels() ) {
 				vars[l] = curVars;
@@ -549,13 +551,12 @@
 			Parent::visit( compoundStmt );
 
+			// add destructors for the current scope that we're exiting
 			std::list< Statement * > & statements = compoundStmt->get_kids();
 			insertDtors( reverseDeclOrder.front().begin(), reverseDeclOrder.front().end(), back_inserter( statements ) );
-
-			// xxx - ??
-			// deleteAll( dtorStmts.back() );
 			reverseDeclOrder.pop_front();
 		}
 
 		void InsertDtors::visit( ReturnStmt * returnStmt ) {
+			// return exits all scopes, so dump destructors for all scopes
 			for ( OrderedDecls & od : reverseDeclOrder ) {
 				insertDtors( od.begin(), od.end(), back_inserter( stmtsToAdd ) );
