Index: src/memline.c =================================================================== --- src/memline.c (revision 57762) +++ src/memline.c (working copy) @@ -1662,7 +1662,8 @@ } else MSG(_("Recovery completed. Buffer contents equals file contents.")); - MSG_PUTS(_("\nYou may want to delete the .swp file now.\n\n")); + if (vim_strchr(p_cpo, CPO_PRESERVE) == NULL) + MSG_PUTS(_("\nYou may want to delete the .swp file now.\n\n")); cmdline_row = msg_row; } #ifdef FEAT_CRYPT @@ -1681,7 +1682,8 @@ { if (hp != NULL) mf_put(mfp, hp, FALSE, FALSE); - mf_close(mfp, FALSE); /* will also vim_free(mfp->mf_fname) */ + /* PR-3936063: In POSIX preserve mode, delete the file after recovery */ + mf_close(mfp, (vim_strchr(p_cpo, CPO_PRESERVE) != NULL)); /* will also vim_free(mfp->mf_fname) */ } if (buf != NULL) {