Should have read (define escape^ ) (set! expr (delay (if get-out (escape^ #f) #t))) (call/cc (lambda (cont) (set! escape^ cont) (set! get-out #t) (force expr))) (set! get-out #f) (force expr) Apologies for the inconvenience of redistribution... Jon