Index: src/Parser/parser.yy
===================================================================
--- src/Parser/parser.yy	(revision 3ca7ef3948062c1961c924a6f0aa2299977428d8)
+++ src/Parser/parser.yy	(revision 709b8121c9e433e178ba45e3c4c29555a916ced2)
@@ -10,6 +10,6 @@
 // Created On       : Sat Sep  1 20:22:55 2001
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Fri Oct  9 18:09:09 2020
-// Update Count     : 4614
+// Last Modified On : Sat Oct 24 08:21:14 2020
+// Update Count     : 4624
 //
 
@@ -1080,7 +1080,7 @@
 	IF '(' if_control_expression ')' statement			%prec THEN
 		// explicitly deal with the shift/reduce conflict on if/else
-		{ $$ = new StatementNode( build_if( $3, $5, nullptr ) ); }
+		{ $$ = new StatementNode( build_if( $3, maybe_build_compound( $5 ), nullptr ) ); }
 	| IF '(' if_control_expression ')' statement ELSE statement
-		{ $$ = new StatementNode( build_if( $3, $5, $7 ) ); }
+		{ $$ = new StatementNode( build_if( $3, maybe_build_compound( $5 ), maybe_build_compound( $7 ) ) ); }
 	;
 
@@ -1130,5 +1130,5 @@
 
 case_clause:											// CFA
-	case_label_list statement					{ $$ = $1->append_last_case( new StatementNode( build_compound( $2 ) ) ); }
+	case_label_list statement					{ $$ = $1->append_last_case( maybe_build_compound( $2 ) ); }
 	;
 
@@ -1148,15 +1148,15 @@
 iteration_statement:
 	WHILE '(' push if_control_expression ')' statement pop
-		{ $$ = new StatementNode( build_while( $4, $6 ) ); }
+		{ $$ = new StatementNode( build_while( $4, maybe_build_compound( $6 ) ) ); }
 	| WHILE '(' ')' statement							// CFA => while ( 1 )
-		{ $$ = new StatementNode( build_while( new IfCtrl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), $4 ) ); }
+		{ $$ = new StatementNode( build_while( new IfCtrl( nullptr, new ExpressionNode( build_constantInteger( *new string( "1" ) ) ) ), maybe_build_compound( $4 ) ) ); }
 	| DO statement WHILE '(' comma_expression ')' ';'
-		{ $$ = new StatementNode( build_do_while( $5, $2 ) ); }
+		{ $$ = new StatementNode( build_do_while( $5, maybe_build_compound( $2 ) ) ); }
 	| DO statement WHILE '(' ')' ';'					// CFA => do while( 1 )
-		{ $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), $2 ) ); }
+		{ $$ = new StatementNode( build_do_while( new ExpressionNode( build_constantInteger( *new string( "1" ) ) ), maybe_build_compound( $2 ) ) ); }
 	| FOR '(' push for_control_expression_list ')' statement pop
-		{ $$ = new StatementNode( build_for( $4, $6 ) ); }
+		{ $$ = new StatementNode( build_for( $4, maybe_build_compound( $6 ) ) ); }
 	| FOR '(' ')' statement								// CFA => for ( ;; )
-		{ $$ = new StatementNode( build_for( new ForCtrl( (ExpressionNode * )nullptr, (ExpressionNode * )nullptr, (ExpressionNode * )nullptr ), $4 ) ); }
+		{ $$ = new StatementNode( build_for( new ForCtrl( (ExpressionNode * )nullptr, (ExpressionNode * )nullptr, (ExpressionNode * )nullptr ), maybe_build_compound( $4 ) ) ); }
 	;
 
@@ -1341,16 +1341,16 @@
 waitfor_clause:
 	when_clause_opt waitfor statement					%prec THEN
- 		{ $$ = build_waitfor( $2, $3, $1 ); }
+		{ $$ = build_waitfor( $2, maybe_build_compound( $3 ), $1 ); }
 	| when_clause_opt waitfor statement WOR waitfor_clause
- 		{ $$ = build_waitfor( $2, $3, $1, $5 ); }
+		{ $$ = build_waitfor( $2, maybe_build_compound( $3 ), $1, $5 ); }
 	| when_clause_opt timeout statement					%prec THEN
- 		{ $$ = build_waitfor_timeout( $2, $3, $1 ); }
+		{ $$ = build_waitfor_timeout( $2, maybe_build_compound( $3 ), $1 ); }
 	| when_clause_opt ELSE statement
- 		{ $$ = build_waitfor_timeout( nullptr, $3, $1 ); }
+		{ $$ = build_waitfor_timeout( nullptr, maybe_build_compound( $3 ), $1 ); }
 		// "else" must be conditional after timeout or timeout is never triggered (i.e., it is meaningless)
 	| when_clause_opt timeout statement WOR ELSE statement
 		{ SemanticError( yylloc, "else clause must be conditional after timeout or timeout never triggered." ); $$ = nullptr; }
 	| when_clause_opt timeout statement WOR when_clause ELSE statement
- 		{ $$ = build_waitfor_timeout( $2, $3, $1, $7, $5 ); }
+		{ $$ = build_waitfor_timeout( $2, maybe_build_compound( $3 ), $1, maybe_build_compound( $7 ), $5 ); }
 	;
 
