diff --git a/src/charset.c b/src/charset.c
index 00a5326..c198284 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -991,14 +991,15 @@
     else
 #endif
     {
-	/* Rough guess: use isalpha() for characters above 128. */
+	/* Rough guess: use isalpha() and isupper() for characters above 128.
+	 * */
 	for (i = 128; i < 256; ++i)
 	{
-	    spelltab.st_isw[i] = isalpha(i);
-	    if (isupper(i))
+	    spelltab.st_isw[i] = MB_ISUPPER(i) || MB_ISLOWER(i);
+	    if (MB_ISUPPER(i))
 	    {
 		spelltab.st_isu[i] = TRUE;
-		spelltab.st_fold[i] = tolower(i);
+		spelltab.st_fold[i] = MB_TOLOWER(i);
 	    }
 	}
     }
@@ -1150,6 +1151,8 @@
 #if defined(FEAT_MBYTE) || defined(PROTO)
 /*
  * Write the current tables into the .spl file.
+ * This makes sure the same characters are recognized as word characters when
+ * generating an when using a spell file.
  */
     void
 write_spell_chartab(fd)
@@ -1160,15 +1163,6 @@
     int		flags;
     int		i;
 
-    if (!did_set_spelltab)
-    {
-	/* No character table specified, write zero counts. */
-	fputc(0, fd);
-	fputc(0, fd);
-	fputc(0, fd);
-	return;
-    }
-
     fputc(128, fd);				    /* <charflagslen> */
     for (i = 128; i < 256; ++i)
     {
diff --git a/src/misc2.c b/src/misc2.c
index 0735e29..a00d3ae 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -2474,11 +2474,15 @@
 	    && is_drag == mouse_table[i].is_drag)
 	{
 #ifdef FEAT_GUI
-	    /* Trick: a non mappable left click and release has mouse_col < 0.
-	     * Used for 'mousefocus' in gui_mouse_moved() */
-	    if (mouse_col < 0)
+	    /* Trick: a non mappable left click and release has mouse_col -1
+	     * or added MOUSE_COLOFF.  Used for 'mousefocus' in
+	     * gui_mouse_moved() */
+	    if (mouse_col < 0 || mouse_col > MOUSE_COLOFF)
 	    {
-		mouse_col = 0;
+		if (mouse_col < 0)
+		    mouse_col = 0;
+		else
+		    mouse_col -= MOUSE_COLOFF;
 		if (mouse_table[i].pseudo_code == (int)KE_LEFTMOUSE)
 		    return (int)KE_LEFTMOUSE_NM;
 		if (mouse_table[i].pseudo_code == (int)KE_LEFTRELEASE)
diff --git a/src/version.h b/src/version.h
index d1565c9..2915546 100644
--- a/src/version.h
+++ b/src/version.h
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT	"vim70aa"
 #define VIM_VERSION_SHORT	"7.0aa"
 #define VIM_VERSION_MEDIUM	"7.0aa ALPHA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Apr 23)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Apr 23, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Apr 24)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Apr 24, compiled "
