diff --git a/src/language.yacc b/src/language.yacc
index 51c214afd0d4da71dd3db6c480d36a88b25d04f6..acc798b5bc1083ac15aa0bad097c95c47310f466 100644
--- a/src/language.yacc
+++ b/src/language.yacc
@@ -3225,8 +3225,7 @@ foreach: TOK_FOREACH
 		$9);
     } else {
       /* Error in lvalue */
-      free_node($6);
-      $$=$9;
+      $$=mknode(F_COMMA_EXPR, mkcastnode(void_type_string, $6), $9);
     }
     COPY_LINE_NUMBER_INFO($$, $3);
     free_node ($3);