I might note that the equivalent case in the PRIME PL/1 compiler (select(value); when(1)...; when(2)...;) is essentially broken down to the nested if type construct in the IL representation and then optimized by the backend into a computed GOTO. This has the feature that if it was 'nicer' to write the code as nested IFs then the code will still be optimized. - Doug Rand