When a parallel has two paths that have optional constructs, where the parallel is contained within a loop, then it is currently possible that a message contained in one of the parallel paths may appear as a pre-condition (lookahead message) on the other path.
This can cause parallel threads to be incorrectly completed, because the evaluation of the message in the path that does not contain the message may complete before evaluation of the path that does have the message, causing the parallel to prematurely complete.
Need validation to detect this situation, or alternatively some way to understand that occurrance of the message should initially be directed to the path that has the message receive/send, but if that path has been exhausted, and a conditional path remains, then use the message to terminate the conditional path and re-iterate around the loop.