diff --git a/src/bufwrite.c b/src/bufwrite.c
index e480e57..a38fb1c 100644
--- a/src/bufwrite.c
+++ b/src/bufwrite.c
@@ -1982,8 +1982,6 @@
 	write_info.bw_start_lnum = start;
 
 #ifdef FEAT_PERSISTENT_UNDO
-	// TODO: if the selected crypt method prevents the undo file from being
-	// written, and existing undo file should be deleted.
 	write_undo_file = (buf->b_p_udf
 			    && overwriting
 			    && !append
@@ -1991,11 +1989,22 @@
 # ifdef CRYPT_NOT_INPLACE
 			    // writing undo file requires
 			    // crypt_encode_inplace()
-			    && (curbuf->b_cryptstate == NULL
-				|| crypt_works_inplace(curbuf->b_cryptstate))
+			    && (buf->b_cryptstate == NULL
+				|| crypt_works_inplace(buf->b_cryptstate))
 # endif
 			    && reset_changed
 			    && !checking_conversion);
+# ifdef CRYPT_NOT_INPLACE
+	// remove undo file if encrypting it is not possible
+	if (buf->b_p_udf
+		&& overwriting
+		&& !append
+		&& !filtering
+		&& !checking_conversion
+		&& buf->b_cryptstate != NULL
+		&& !crypt_works_inplace(buf->b_cryptstate))
+	    u_undofile_reset_and_delete(buf);
+# endif
 	if (write_undo_file)
 	    // Prepare for computing the hash value of the text.
 	    sha256_start(&sha_ctx);
diff --git a/src/crypt.c b/src/crypt.c
index 1b2ece5..fad6df0 100644
--- a/src/crypt.c
+++ b/src/crypt.c
@@ -616,11 +616,8 @@
 	// swap and undo files, so disable them
 	mf_close_file(curbuf, TRUE);	// remove the swap file
 	set_option_value((char_u *)"swf", 0, NULL, OPT_LOCAL);
-#ifdef FEAT_PERSISTENT_UNDO
-	set_option_value((char_u *)"udf", 0, NULL, OPT_LOCAL);
-#endif
 	msg_scroll = TRUE;
-	msg(_("Note: Encryption of swapfile not supported, disabling swap- and undofile"));
+	msg(_("Note: Encryption of swapfile not supported, disabling swap file"));
     }
 }
 #endif
diff --git a/src/proto/undo.pro b/src/proto/undo.pro
index 97dbef3..851d281 100644
--- a/src/proto/undo.pro
+++ b/src/proto/undo.pro
@@ -27,5 +27,6 @@
 int bufIsChangedNotTerm(buf_T *buf);
 int curbufIsChanged(void);
 void f_undofile(typval_T *argvars, typval_T *rettv);
+void u_undofile_reset_and_delete(buf_T *buf);
 void f_undotree(typval_T *argvars, typval_T *rettv);
 /* vim: set ft=c : */
diff --git a/src/testdir/test_crypt.vim b/src/testdir/test_crypt.vim
index 883c899..2e34c80 100644
--- a/src/testdir/test_crypt.vim
+++ b/src/testdir/test_crypt.vim
@@ -133,7 +133,7 @@
   catch
     call assert_exception('pre-mature')
   endtry
-  call assert_match("Note: Encryption of swapfile not supported, disabling swap- and undofile", execute(':5messages'))
+  call assert_match("Note: Encryption of swapfile not supported, disabling swap file", execute(':5messages'))
 
   call assert_equal(0, &swapfile)
   call assert_equal("xchacha20", &cryptmethod)
@@ -152,7 +152,7 @@
   call feedkeys(":X\<CR>sodium\<CR>sodium\<CR>", 'xt')
   " swapfile disabled
   call assert_equal(0, &swapfile)
-  call assert_match("Note: Encryption of swapfile not supported, disabling swap- and undofile", execute(':messages'))
+  call assert_match("Note: Encryption of swapfile not supported, disabling swap file", execute(':messages'))
   w!
   " encrypted using xchacha20
   call assert_match("\[xchacha20\]", execute(':messages'))
@@ -176,7 +176,7 @@
   sp Xcrypt_sodium_undo.txt
   set cryptmethod=xchacha20 undofile
   call feedkeys(":X\<CR>sodium\<CR>sodium\<CR>", 'xt')
-  call assert_equal(0, &undofile)
+  call assert_equal(1, &undofile)
   let ufile=undofile(@%)
   call append(0, ['monday', 'tuesday', 'wednesday', 'thursday', 'friday'])
   call cursor(1, 1)
@@ -189,6 +189,7 @@
   normal dd
   set undolevels=100
   w!
+  call assert_equal(0, &undofile)
   bw!
   call feedkeys(":sp Xcrypt_sodium_undo.txt\<CR>sodium\<CR>", 'xt')
   " should fail
diff --git a/src/undo.c b/src/undo.c
index 331c1e6..171e817 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -3669,6 +3669,28 @@
     rettv->vval.v_string = NULL;
 #endif
 }
+#ifdef FEAT_PERSISTENT_UNDO
+/*
+ * Reset undofile option and delete the undofile
+ */
+    void
+u_undofile_reset_and_delete(buf_T *buf)
+{
+    char_u *file_name;
+
+    if (!buf->b_p_udf)
+	return;
+
+    file_name = u_get_undo_file_name(buf->b_ffname, TRUE);
+    if (file_name != NULL)
+    {
+	mch_remove(file_name);
+	vim_free(file_name);
+    }
+
+    set_option_value((char_u *)"undofile", 0L, NULL, OPT_LOCAL);
+}
+ #endif
 
 /*
  * "undotree()" function
diff --git a/src/version.c b/src/version.c
index 9e77d56..9b334e6 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3218,
+/**/
     3217,
 /**/
     3216,
