Fix a few compiler warnings.  Fix crash with encrypted undo file.
diff --git a/src/blowfish.c b/src/blowfish.c
index 1ab8eca..d47f463 100644
--- a/src/blowfish.c
+++ b/src/blowfish.c
@@ -413,6 +413,11 @@
 
     key = sha256_key(password);
     keylen = (int)STRLEN(key);
+    if (keylen == 0)
+    {
+	EMSG(_("E831: bf_key_init() called with empty password"));
+	return;
+    }
     for (i = 0; i < 256; ++i)
     {
 	sbx[0][i] = sbi[0][i];
diff --git a/src/feature.h b/src/feature.h
index 5bca7c7..7a38b85 100644
--- a/src/feature.h
+++ b/src/feature.h
@@ -127,7 +127,7 @@
 #endif
 
 /*
- * Message history is fixed at 100 message, 20 for the tiny version.
+ * Message history is fixed at 200 message, 20 for the tiny version.
  */
 #ifdef FEAT_SMALL
 # define MAX_MSG_HIST_LEN 200
diff --git a/src/gui_beval.c b/src/gui_beval.c
index 123b6fd..90bef8b 100644
--- a/src/gui_beval.c
+++ b/src/gui_beval.c
@@ -20,6 +20,7 @@
     BalloonEval *beval;
     int		state UNUSED;
 {
+#ifdef FEAT_EVAL
     win_T	*wp;
     int		col;
     int		use_sandbox;
@@ -29,8 +30,9 @@
     long	winnr = 0;
     char_u	*bexpr;
     buf_T	*save_curbuf;
-#ifdef FEAT_WINDOWS
+# ifdef FEAT_WINDOWS
     win_T	*cw;
+# endif
 #endif
     static int	recursive = FALSE;
 
diff --git a/src/menu.c b/src/menu.c
index f01a34e..3ab957c 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -56,10 +56,10 @@
 #endif
 #ifdef FEAT_MULTI_LANG
 static char_u *menutrans_lookup __ARGS((char_u *name, int len));
+static void menu_unescape_name  __ARGS((char_u	*p));
 #endif
 
 static char_u *menu_translate_tab_and_shift __ARGS((char_u *arg_start));
-static void menu_unescape_name  __ARGS((char_u	*p));
 
 /* The character for each menu mode */
 static char_u	menu_mode_chars[] = {'n', 'v', 's', 'o', 'i', 'c', 't'};
@@ -2525,7 +2525,6 @@
 
     return NULL;
 }
-#endif /* FEAT_MULTI_LANG */
 
 /*
  * Unescape the name in the translate dictionary table.
@@ -2540,6 +2539,7 @@
 	if (*p == '\\')
 	    STRMOVE(p, p + 1);
 }
+#endif /* FEAT_MULTI_LANG */
 
 /*
  * Isolate the menu name.
diff --git a/src/syntax.c b/src/syntax.c
index c19c5d9..370bc76 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -235,7 +235,7 @@
 
 /*
  * Another Annoying Hack(TM):  To prevent rules from other ":syn include"'d
- * files from from leaking into ALLBUT lists, we assign a unique ID to the
+ * files from leaking into ALLBUT lists, we assign a unique ID to the
  * rules in each ":syn include"'d file.
  */
 static int current_syn_inc_tag = 0;
@@ -4500,11 +4500,13 @@
 	    }
 	    else
 #endif
+	    {
 #ifdef FEAT_CONCEAL
 		*conceal_char = arg[6];
 #else
 		;
 #endif
+	    }
 	    arg = skipwhite(arg + 7);
 	}
 	else
diff --git a/src/undo.c b/src/undo.c
index 232dbac..22d07d5 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -1503,13 +1503,19 @@
     if (version == UF_VERSION_CRYPT)
     {
 #ifdef FEAT_CRYPT
+	if (*curbuf->b_p_key == NUL)
+	{
+	    EMSG2(_("E832: Non-encrypted file has encrypted undo file: %s"),
+								   file_name);
+	    goto error;
+	}
 	if (prepare_crypt_read(fp) == FAIL)
 	{
 	    EMSG2(_("E826: Undo file decryption failed: %s"), file_name);
 	    goto error;
 	}
 #else
-        EMSG2(_("E826: Undo file is encrypted: %s"), file_name);
+        EMSG2(_("E827: Undo file is encrypted: %s"), file_name);
         goto error;
 #endif
     }