workaround for double-destruction bugs in compilers: with this, boost::exception objects should survive the case when the destructor is called twice.