commit: aBlock | result | self begin. result _ aBlock value. self commit. ^result ... and aBlock has a return. Bummer. shouldn't that be aBlock valueOnReturnDo: [self commit] or something? (hmm.. Squeak doesn't have that one.) Anyway, i'll rewrite my code but I really think that "commit: [^foo]" shouldn't fail in this way...