Throw reason should be superseeded by: e = catch_exception (....); if .... throw_exception (e); I'll commit eventually. Andrew