Index: src/Concurrency/Waitfor.cc
===================================================================
--- src/Concurrency/Waitfor.cc	(revision 549c006f5f7e2f45d09672b9abae0dfe3809c271)
+++ src/Concurrency/Waitfor.cc	(revision 08da53dc33a9524abd5a449278fcad633ee0261c)
@@ -190,5 +190,5 @@
 
 		Statement * makeAccStatement( DeclarationWithType * object, unsigned long index, const std::string & member, Expression * value, const SymTab::Indexer & indexer ) {
-			std::unique_ptr< Expression > expr( makeOpAssign(
+			Expression * expr = makeOpAssign(
 				makeOpMember(
 					makeOpIndex(
@@ -199,7 +199,9 @@
 				),
 				value
-			) );
-
-			return new ExprStmt( noLabels, ResolvExpr::findVoidExpression( expr.get(), indexer ) );
+			);
+
+			ResolvExpr::findVoidExpression( expr, indexer );
+
+			return new ExprStmt( noLabels, expr );
 		}
 
@@ -313,5 +315,5 @@
 		stmt->push_back( new DeclStmt( noLabels, acceptables) );
 
-		UntypedExpr * set = new UntypedExpr(
+		Expression * set = new UntypedExpr(
 			new NameExpr( "__builtin_memset" ),
 			{
@@ -322,8 +324,7 @@
 		);
 
-		Expression * resolved_set = ResolvExpr::findVoidExpression( set, indexer );
-		delete set;
-
-		stmt->push_back( new ExprStmt( noLabels, resolved_set ) );
+		ResolvExpr::findVoidExpression( set, indexer );
+
+		stmt->push_back( new ExprStmt( noLabels, set ) );
 
 		return acceptables;
@@ -346,5 +347,5 @@
 
 	Statement * GenerateWaitForPass::makeSetter( ObjectDecl * flag ) {
-		Expression * untyped = new UntypedExpr(
+		Expression * expr = new UntypedExpr(
 			new NameExpr( "?=?" ),
 			{
@@ -354,6 +355,5 @@
 		);
 
-		Expression * expr = ResolvExpr::findVoidExpression( untyped, indexer );
-		delete untyped;
+		ResolvExpr::findVoidExpression( expr, indexer );
 
 		return new ExprStmt( noLabels, expr );
@@ -379,5 +379,5 @@
 			new ListInit(
 				map_range < std::list<Initializer*> > ( clause.target.arguments, [this](Expression * expr ){
-					Expression * untyped = new CastExpr(
+					Expression * init = new CastExpr(
 						new UntypedExpr(
 							new NameExpr( "get_monitor" ),
@@ -393,6 +393,5 @@
 					);
 
-					Expression * init = ResolvExpr::findSingleExpression( untyped, indexer );
-					delete untyped;
+					ResolvExpr::findSingleExpression( init, indexer );
 					return new SingleInit( init );
 				})
