Thanks for the answer. Surrounding the pushed code with a test and pausing when the test is false would do it, as you say. It's not the most obvious way to code such a behaviour. Please could we have a way to reverse PUSH, either partly like POP or completely like QUEUE_CLEAR? . Of course a better solution would be to implement the try-catch-finally syntax and semantics used in other languages. I can see that this might be difficult in an interactive language like IML; you would need to reorder it: finally-catch-try!