extra cautious save to workaround destructor bug