Always use set_buffer_if_live to restore original buffer at unwind.