Fix: editing a not encrypted file after a crypted file messed up reading the
text from an undo file.
diff --git a/src/fileio.c b/src/fileio.c
index 1c0ac85..c7a2b74 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -2953,7 +2953,7 @@
     }
     /* When starting to edit a new file which does not have encryption, clear
      * the 'key' option, except when starting up (called with -x argument) */
-    else if (newfile && *curbuf->b_p_key && !starting)
+    else if (newfile && *curbuf->b_p_key != NUL && !starting)
 	set_option_value((char_u *)"key", 0L, (char_u *)"", OPT_LOCAL);
 
     return cryptkey;
diff --git a/src/undo.c b/src/undo.c
index 6d50cc8..eb887d8 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -888,7 +888,7 @@
 
     ptr = read_string(fd, len);
 #ifdef FEAT_CRYPT
-    if (ptr != NULL || *buf->b_p_key != NUL)
+    if (ptr != NULL && *buf->b_p_key != NUL)
 	crypt_decode(ptr, len);
 #endif
     return ptr;
@@ -909,7 +909,7 @@
     /* If the buffer is encrypted then all text bytes following will be
      * encrypted.  Numbers and other info is not crypted. */
 #ifdef FEAT_CRYPT
-    if (*buf->b_p_key)
+    if (*buf->b_p_key != NUL)
     {
 	char_u *header;
 	int    header_len;
@@ -1475,7 +1475,7 @@
     if (serialize_header(fp, buf, hash) == FAIL)
 	goto write_error;
 #ifdef FEAT_CRYPT
-    if (*buf->b_p_key)
+    if (*buf->b_p_key != NUL)
 	do_crypt = TRUE;
 #endif