Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision 982d63f614adf976a02207144f8aae600364c069)
+++ src/CodeGen/CodeGenerator.cc	(revision 4b2589a5585c447a4b3ff6c5524c919a032e22a4)
@@ -750,9 +750,5 @@
 	void CodeGenerator::visit( ReturnStmt *returnStmt ) {
 		output << "return ";
-
-		// xxx -- check for null expression;
-		if ( returnStmt->get_expr() ) {
-			returnStmt->get_expr()->accept( *this );
-		} // if
+		maybeAccept( returnStmt->get_expr(), *this );
 		output << ";";
 	}
Index: src/ControlStruct/MLEMutator.cc
===================================================================
--- src/ControlStruct/MLEMutator.cc	(revision 982d63f614adf976a02207144f8aae600364c069)
+++ src/ControlStruct/MLEMutator.cc	(revision 4b2589a5585c447a4b3ff6c5524c919a032e22a4)
@@ -166,9 +166,4 @@
 			throw SemanticError("The label defined in the exit loop statement does not exist: " + originalTarget );  // shouldn't happen (since that's already checked)
 		}
-
-		// xxx - possibly remove this
-		// what about exiting innermost block or switch???
-		// if ( enclosingControlStructures.back() == (*targetEntry) )
-		// 	return branchStmt;				// exit the innermost loop (labels unnecessary)
 
 		// branch error checks, get the appropriate label name and create a goto
Index: src/InitTweak/FixInit.cc
===================================================================
--- src/InitTweak/FixInit.cc	(revision 982d63f614adf976a02207144f8aae600364c069)
+++ 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 ) );
Index: src/SynTree/Label.h
===================================================================
--- src/SynTree/Label.h	(revision 982d63f614adf976a02207144f8aae600364c069)
+++ src/SynTree/Label.h	(revision 4b2589a5585c447a4b3ff6c5524c919a032e22a4)
@@ -21,9 +21,4 @@
 #include <iostream>
 #include "SynTree.h"
-
-// Label needs to know
-// * how deeply nested it is (scopeLevel)
-// * relative position in a scope compared with other labels (index?)
-// * either the original label it was generated from or the labels it generates (for labelled break/continue)
 
 class Label {
