When a Recover is inside a block it will take responsibility for any exception occurring from inside the block, so you Recover1 catches the exception from Calc1. A Recover that is not in a block takes responsibility for exceptions coming from outside any block on the page, so your Exception1 is caught at Recover2. However this exception is not neutralised (Resumed) and you go back to Calc1, and a second exception comes into play. This is probably the root of your problem - the golden rule is to avoid having more than 1 exception at a time.