Perl 5.6 will fix this. die() within DESTROY() is turned into a warn(), and so won't interfere with $@. I've marked the bug as closed. Thanks for your bug report, Nat