Index: src/ResolvExpr/AlternativeFinder.cc
===================================================================
--- src/ResolvExpr/AlternativeFinder.cc	(revision ea83e00ae85e9300955d14033071827d7db730f3)
+++ src/ResolvExpr/AlternativeFinder.cc	(revision 722617d490808c780a86a748504d8dec075c2103)
@@ -44,4 +44,5 @@
 #include "InitTweak/GenInit.h"
 #include "ResolveTypeof.h"
+#include "Resolver.h"
 
 extern bool resolvep;
@@ -1122,4 +1123,11 @@
 	}
 
+	void AlternativeFinder::visit( StmtExpr *stmtExpr ) {
+		StmtExpr * newStmtExpr = stmtExpr->clone();
+		ResolvExpr::resolveStmtExpr( newStmtExpr, indexer );
+		// xxx - this env is almost certainly wrong, and needs to somehow contain the combined environments from all of the statements in the stmtExpr...
+		alternatives.push_back( Alternative( newStmtExpr, env, Cost::zero ) );
+	}
+
 } // namespace ResolvExpr
 
Index: src/ResolvExpr/AlternativeFinder.h
===================================================================
--- src/ResolvExpr/AlternativeFinder.h	(revision ea83e00ae85e9300955d14033071827d7db730f3)
+++ src/ResolvExpr/AlternativeFinder.h	(revision 722617d490808c780a86a748504d8dec075c2103)
@@ -70,4 +70,5 @@
 		virtual void visit( TupleAssignExpr *tupleExpr );
 		virtual void visit( UniqueExpr *unqExpr );
+		virtual void visit( StmtExpr *stmtExpr );
 		/// Runs a new alternative finder on each element in [begin, end)
 		/// and writes each alternative finder to out.
