diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index b79a5ef..52dc026 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.0g.  Last change: 2006 Apr 30
+*autocmd.txt*   For Vim version 7.0g.  Last change: 2006 May 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -734,8 +734,8 @@
 				See |:syn-on|.
 							*TabEnter*
 TabEnter			Just after entering a tab page. |tab-page|
-				Before triggering the WinEnter and BufEnter
-				events.
+				After triggering the WinEnter and before
+				triggering the BufEnter event.
 							*TabLeave*
 TabLeave			Just before leaving a tab page. |tab-page|
 				A WinLeave event will have been triggered
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 9794089..8bc6a4b 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0g.  Last change: 2006 May 05
+*eval.txt*      For Vim version 7.0g.  Last change: 2006 May 06
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -2691,12 +2691,14 @@
 		result is a number.  Use nr2char() to convert it to a String.
 		Otherwise a String is returned with the encoded character.
 		For a special key it's a sequence of bytes starting with 0x80
-		(decimal: 128).  The returned value is also a String when a
-		modifier (shift, control, alt) was used that is not included
-		in the character.
+		(decimal: 128).  This is the same value as the string
+		"\<Key>", e.g., "\<Left>".  The returned value is also a
+		String when a modifier (shift, control, alt) was used that is
+		not included in the character.
 
 		When {expr} is 1 only the first byte is returned.  For a
-		one-byte character it is the character itself.
+		one-byte character it is the character itself as a number.
+		Use nr2char() to convert it to a String.
 
 		There is no prompt, you will somehow have to make clear to the
 		user that a character has to be typed.
@@ -4677,6 +4679,7 @@
 		like the ":substitute" command (without any flags).  But the
 		matching with {pat} is always done like the 'magic' option is
 		set and 'cpoptions' is empty (to make scripts portable).
+		'ignorecase' is still relevant.
 		See |string-match| for how {pat} is used.
 		And a "~" in {sub} is not replaced with the previous {sub}.
 		Note that some codes in {sub} have a special meaning
diff --git a/runtime/spell/en.latin1.spl b/runtime/spell/en.latin1.spl
index 2e5d1e9..bdf0c09 100644
--- a/runtime/spell/en.latin1.spl
+++ b/runtime/spell/en.latin1.spl
Binary files differ
diff --git a/runtime/spell/en.utf-8.sug b/runtime/spell/en.utf-8.sug
index 29a3177..9009381 100644
--- a/runtime/spell/en.utf-8.sug
+++ b/runtime/spell/en.utf-8.sug
Binary files differ
diff --git a/src/gui_w32.c b/src/gui_w32.c
index 711fe82..cf1f6fc 100644
--- a/src/gui_w32.c
+++ b/src/gui_w32.c
@@ -1599,6 +1599,7 @@
     int		win_width, win_height;
     int		win_xpos, win_ypos;
     WINDOWPLACEMENT wndpl;
+    int		workarea_left;
 
     /* Try to keep window completely on screen. */
     /* Get position of the screen work area.  This is the part that is not
@@ -1632,11 +1633,21 @@
 #endif
 			;
 
+    /* There is an inconsistency when using two monitors and Vim is on the
+     * second (right) one: win_xpos will be the offset from the workarea of
+     * the left monitor.  While with one monitor it's the offset from the
+     * workarea (including a possible taskbar on the left).  Detect the second
+     * monitor by checking for the left offset to be quite big. */
+    if (workarea_rect.left > 300)
+	workarea_left = 0;
+    else
+	workarea_left = workarea_rect.left;
+
     /* If the window is going off the screen, move it on to the screen.
      * win_xpos and win_ypos are relative to the workarea. */
     if ((direction & RESIZE_HOR)
-	   && workarea_rect.left + win_xpos + win_width > workarea_rect.right)
-	win_xpos = workarea_rect.right - win_width - workarea_rect.left;
+	    && workarea_left + win_xpos + win_width > workarea_rect.right)
+	win_xpos = workarea_rect.right - win_width - workarea_left;
 
     if ((direction & RESIZE_HOR) && win_xpos < 0)
 	win_xpos = 0;
diff --git a/src/version.h b/src/version.h
index 389219d..88c9d2e 100644
--- a/src/version.h
+++ b/src/version.h
@@ -35,6 +35,6 @@
  */
 #define VIM_VERSION_NODOT	"vim70g"
 #define VIM_VERSION_SHORT	"7.0g"
-#define VIM_VERSION_MEDIUM	"7.0g04 BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0g04 BETA (2006 May 5)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0g04 BETA (2006 May 5, compiled "
+#define VIM_VERSION_MEDIUM	"7.0g05 BETA"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0g05 BETA (2006 May 6)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0g05 BETA (2006 May 6, compiled "
