Ok... Further testing... I decided to adjust the code you gave as any example instead of only checking what you provided.

This appears to actually only affect a FAILED IF statement.

alias test {
  if (1 == 1) { echo -a 1 | echo -a 2 | ;echo -a 3 }
  elseif (1) echo -a 4
  echo -a 5

This works like you expect it to. So this actually is a parsing error, but is related to a failed IF rather than just the ; . Also, this only affects a failed IF statement if the ; is in the LAST part of the IF statement's line. The ; will stop at } any other time.

*** This does invalidate what I said above because it's already set up to do things differently based on where the ; is located. I still don't think that's a good idea for the reasons listed above, but oh well. Also, this bug is a good example why having mIRC try to guess what you mean is a bad idea.

Invision Support
#Invision on irc.irchighway.net