Index: src/Concurrency/Waituntil.cpp
===================================================================
--- src/Concurrency/Waituntil.cpp	(revision c2c171747f6a76789fe7e2861bf8ed06b7f0d080)
+++ src/Concurrency/Waituntil.cpp	(revision 9cb2742afd1346cc4509d47bf3918ed284afacdb)
@@ -625,10 +625,18 @@
 CompoundStmt * GenerateWaitUntilCore::genStmtBlock( const WhenClause * clause, const ClauseData * data ) {
     const CodeLocation & cLoc = clause->location;
+    // return new CompoundStmt( cLoc, // OLD
+    //     {
+    //         new ExprStmt( cLoc,
+    //             genSelectTraitCall( clause, data, "on_selected" )
+    //         ),
+    //         ast::deepCopy( clause->stmt )
+    //     }
+    // );
     return new CompoundStmt( cLoc,
         {
-            new ExprStmt( cLoc,
-                genSelectTraitCall( clause, data, "on_selected" )
-            ),
-            ast::deepCopy( clause->stmt )
+            new IfStmt( cLoc,
+                genSelectTraitCall( clause, data, "on_selected" ),
+                ast::deepCopy( clause->stmt )
+            )
         }
     );
@@ -819,5 +827,5 @@
     );
 }
-
+// C_TODO remove unused param if change kept
 Stmt * GenerateWaitUntilCore::genNoElseClauseBranch( const WaitUntilStmt * stmt, string & satName, string & runName, string & arrName, string & pCountName, vector<ClauseData *> & clauseData ) {
     CompoundStmt * whileBody = new CompoundStmt( stmt->location );
@@ -834,14 +842,17 @@
     );
 
-    whileBody->push_back( genStatusCheckFor( stmt, clauseData, satName ) );
+    whileBody->push_back( genStatusCheckFor( stmt, clauseData, runName ) );
+    // whileBody->push_back( genStatusCheckFor( stmt, clauseData, satName ) ); // OLD
 
     return new CompoundStmt( loc,
         {
             new WhileDoStmt( loc,
-                genNotSatExpr( stmt, satName, arrName ),
+                genNotSatExpr( stmt, runName, arrName ),
+                // genNotSatExpr( stmt, satName, arrName ), // OLD
                 whileBody,  // body
                 {}          // no inits
-            ),
-            genStatusCheckFor( stmt, clauseData, runName )
+            )
+            // , // OLD
+            // genStatusCheckFor( stmt, clauseData, runName ) // OLD
         }
     );
