diff --git a/src/spellfile.c b/src/spellfile.c
index d5ec3fe..12dedd6 100644
--- a/src/spellfile.c
+++ b/src/spellfile.c
@@ -816,11 +816,15 @@
 
     // read the length bytes, MSB first
     for (i = 0; i < cnt_bytes; ++i)
-	cnt = (cnt << 8) + (unsigned)getc(fd);
-    if (cnt < 0)
     {
-	*cntp = SP_TRUNCERROR;
-	return NULL;
+	int c = getc(fd);
+
+	if (c == EOF)
+	{
+	    *cntp = SP_TRUNCERROR;
+	    return NULL;
+	}
+	cnt = (cnt << 8) + (unsigned)c;
     }
     *cntp = cnt;
     if (cnt == 0)
diff --git a/src/spellsuggest.c b/src/spellsuggest.c
index 96e7bb6..e2423cd 100644
--- a/src/spellsuggest.c
+++ b/src/spellsuggest.c
@@ -3731,9 +3731,6 @@
     int		maxscore,
     int		keep)		// nr of suggestions to keep
 {
-    suggest_T   *stp = &SUG(*gap, 0);
-    int		i;
-
     if (gap->ga_len > 0)
     {
 	// Sort the list.
@@ -3744,6 +3741,9 @@
 	// displayed.
 	if (gap->ga_len > keep)
 	{
+	    int		i;
+	    suggest_T   *stp = &SUG(*gap, 0);
+
 	    for (i = keep; i < gap->ga_len; ++i)
 		vim_free(stp[i].st_word);
 	    gap->ga_len = keep;
diff --git a/src/version.c b/src/version.c
index d606f1e..03612aa 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1564,
+/**/
     1563,
 /**/
     1562,
diff --git a/src/viminfo.c b/src/viminfo.c
index 74780c3..0ec9a13 100644
--- a/src/viminfo.c
+++ b/src/viminfo.c
@@ -2183,7 +2183,8 @@
 	xfmark_T	*vi_fm;
 
 	fm = idx >= 0 ? &curwin->w_jumplist[idx] : NULL;
-	vi_fm = vi_idx < vi_jumplist_len ? &vi_jumplist[vi_idx] : NULL;
+	vi_fm = (vi_jumplist != NULL && vi_idx < vi_jumplist_len)
+					? &vi_jumplist[vi_idx] : NULL;
 	if (fm == NULL && vi_fm == NULL)
 	    break;
 	if (fm == NULL || (vi_fm != NULL && fm->time_set < vi_fm->time_set))
