diff --git a/runtime/doc/gui.txt b/runtime/doc/gui.txt
index 35936d0..f5c1ef4 100644
--- a/runtime/doc/gui.txt
+++ b/runtime/doc/gui.txt
@@ -25,8 +25,8 @@
 
 First you must make sure you actually have a version of Vim with the GUI code
 included.  You can check this with the ":version" command, it should include
-"+GUI_Athena", "+GUI_BeOS", "+GUI_GTK", "+GUI_KDE", "+GUI_Motif" or
-"MS-Windows ... bit GUI version".
+"+GUI_Athena", "+GUI_GTK", "+GUI_KDE", "+GUI_Motif" or "MS-Windows ... bit
+GUI version".
 
 How to start the GUI depends on the system used.  Mostly you can run the
 GUI version of Vim with:
diff --git a/runtime/doc/os_beos.txt b/runtime/doc/os_beos.txt
index 0971f4f..da8b7dc 100644
--- a/runtime/doc/os_beos.txt
+++ b/runtime/doc/os_beos.txt
@@ -165,7 +165,7 @@
   when it flashes)
 
 
-The $VIM directory					*beos-vimdir*
+6. The $VIM directory					*beos-vimdir*
 
 $VIM is the symbolic name for the place where Vims support files are stored.
 The default value for $VIM is set at compile time and can be determined with >
diff --git a/runtime/spell/en.utf-8.spl b/runtime/spell/en.utf-8.spl
index 300f6ce..3c34590 100644
--- a/runtime/spell/en.utf-8.spl
+++ b/runtime/spell/en.utf-8.spl
Binary files differ
diff --git a/src/buffer.c b/src/buffer.c
index c54df88..c1ffe75 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2450,7 +2450,7 @@
 	else
 	    home_replace(buf, buf->b_fname, NameBuff, MAXPATHL, TRUE);
 
-	vim_snprintf((char *)IObuff, IOSIZE - 20, "%3d%c%c%c%c%c \"%s\"",
+	len = vim_snprintf((char *)IObuff, IOSIZE - 20, "%3d%c%c%c%c%c \"%s\"",
 		buf->b_fnum,
 		buf->b_p_bl ? ' ' : 'u',
 		buf == curbuf ? '%' :
@@ -2463,7 +2463,6 @@
 		NameBuff);
 
 	/* put "line 999" in column 40 or after the file name */
-	len = STRLEN(IObuff);
 	i = 40 - vim_strsize(IObuff);
 	do
 	{
diff --git a/src/main.aap b/src/main.aap
index 564ca07..daa6e8b 100644
--- a/src/main.aap
+++ b/src/main.aap
@@ -152,17 +152,6 @@
 	GUI_TARGETS	= installglinks
 	GUI_MAN_TARGETS	= installghelplinks
 	GUI_TESTTARGET	= gui
-    BEOSGUI
-	GUI_SRC		= gui.c gui_beos.cc pty.c
-	GUI_OBJ		=
-	GUI_DEFS	= -DFEAT_GUI_BEOS
-	GUI_IPATH	=
-	GUI_LIBS_DIR	=
-	GUI_LIBS1	= -lbe -lroot
-	GUI_LIBS2	=
-	GUI_TARGETS	= installglinks
-	GUI_MAN_TARGETS	= installghelplinks
-	GUI_TESTTARGET	= gui
     PHOTONGUI
 	GUI_SRC		= gui.c gui_photon.c pty.c
 	GUI_OBJ		=
diff --git a/src/mark.c b/src/mark.c
index 9d74b4a..6a149bf 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -1445,7 +1445,6 @@
     char_u  *p;
     char_u  part[51];
     int	    retval = FALSE;
-    int	    n;
 
     name = home_replace_save(NULL, name);
     if (name != NULL)
@@ -1453,14 +1452,11 @@
 	for (p = p_viminfo; *p; )
 	{
 	    copy_option_part(&p, part, 51, ", ");
-	    if (part[0] == 'r')
+	    if (part[0] == 'r'
+			&& MB_STRNICMP(part + 1, name, STRLEN(part + 1)) == 0)
 	    {
-		n = STRLEN(part + 1);
-		if (MB_STRNICMP(part + 1, name, n) == 0)
-		{
-		    retval = TRUE;
-		    break;
-		}
+		retval = TRUE;
+		break;
 	    }
 	}
 	vim_free(name);
diff --git a/src/spell.c b/src/spell.c
index 2d80389..9db1b60 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -353,7 +353,7 @@
     char_u	*p;
 #endif
     int		res;
-    int		valid;
+    int		valid = FALSE;
     slang_T	*slang = mip->mi_lp->lp_slang;
     unsigned	flags;
     char_u	*byts;
@@ -1328,6 +1328,7 @@
     int		si_ascii;	/* handling only ASCII words */
     int		si_region;	/* region mask */
     vimconv_T	si_conv;	/* for conversion to 'encoding' */
+    int		si_memtot;	/* runtime memory used */
 } spellinfo_T;
 
 static afffile_T *spell_read_aff __ARGS((char_u *fname, spellinfo_T *spin));
@@ -1460,6 +1461,10 @@
 		    smsg((char_u *)_("Conversion in %s not supported: from %s to %s"),
 					       fname, aff->af_enc, p_enc);
 	    }
+	    else if (STRCMP(items[0], "NOSPLITSUGS") == 0 && itemcnt == 1)
+	    {
+		/* ignored */
+	    }
 	    else if (STRCMP(items[0], "TRY") == 0 && itemcnt == 2
 						       && aff->af_try == NULL)
 	    {
@@ -2420,6 +2425,8 @@
      *  TODO.  Only write a zero length for now. */
     put_bytes(fd, 0L, 4);			/* <suggestlen> */
 
+    spin->si_memtot = 0;
+
     /*
      * <LWORDTREE>  <KWORDTREE>
      */
@@ -2434,6 +2441,7 @@
 
 	/* number of nodes in 4 bytes */
 	put_bytes(fd, (long_u)nodecount, 4);	/* <nodecount> */
+	spin->si_memtot += nodecount + nodecount * sizeof(int);
 
 	/* Write the nodes. */
 	(void)put_tree(fd, tree, 0, regionmask);
@@ -2699,6 +2707,9 @@
 	    out_flush();
 	    write_vim_spell(wfname, &spin, fcount - 1, region_name);
 	    MSG(_("Done!"));
+
+	    smsg((char_u *)_("Estimated runtime memory use: %d bytes"),
+							      spin.si_memtot);
 	    out_flush();
 	}
 
