is this also needed in `preserve_exit()` or some part of that call chain?