STEPHEN>The rule is simple. With Pascal semicolons separate statement and with STEPHEN>Ada semicolons end them. I am aware of the rule. I've even taught the rule! But, consider: if (x < y) then x := y * 5.0 else x := y * 2.0; Normally x := y * 5.0 would have a semicolon, but now it doesn't based on its context. I would argue the statement terminator rule is more intuitive, because you don't change the rules for a particular line of code based on what it is next to. --Martin