François Pinard wrote: > [Stephen J. Turnbull] ... >> try: >> setup() >> process() >> except SetupError: >> pass >> else: >> cleanup() > > Clever, and nice. Thanks for this idea, I'll ponder it. But this only calls cleanup if process does NOT raise. NOT the same semantics as a try/finally *at all*! What am I missing...? Alex