updated for version 7.0c03
diff --git a/runtime/keymap/accents.vim b/runtime/keymap/accents.vim
index fae465e..fed94c5 100644
--- a/runtime/keymap/accents.vim
+++ b/runtime/keymap/accents.vim
@@ -1,6 +1,6 @@
 " Vim Keymap file for latin1 accents through dead characters
 " Maintainer: Bram Moolenaar
-" Last Change: 2001 Jul 22
+" Last Change: 2006 Mar 29
 
 " All characters are given literally, conversion to another encoding (e.g.,
 " UTF-8) should work.
@@ -15,6 +15,7 @@
 ´A	Á
 ^A	Â
 ~A	Ã
+:A	Ä
 'C	Ç
 ´C	Ç
 `E	È
@@ -31,10 +32,12 @@
 ´O	Ó
 ^O	Ô
 ~O	Õ
+:O	Ö
 `U	Ù
 'U	Ú
 ´U	Ú
 ^U	Û
+:U	Ü
 'Y	Ý
 ´Y	Ý
 `a	à
@@ -42,6 +45,7 @@
 ´a	á
 ^a	â
 ~a	ã
+:a	ä
 'c	ç
 ´c	ç
 `e	è
@@ -58,10 +62,12 @@
 ´o	ó
 ^o	ô
 ~o	õ
+:o	ö
 `u	ù
 'u	ú
 ´u	ú
 ^u	û
+:u	ü
 'y	ý
 ´y	ý
 ''	'
@@ -69,3 +75,4 @@
 ``	`
 ^^	^
 ~~	~
+::	:
diff --git a/src/normal.c b/src/normal.c
index 3a336d5..57591f7 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -8993,7 +8993,17 @@
 	/* When all lines were selected and deleted do_put() leaves an empty
 	 * line that needs to be deleted now. */
 	if (empty && *ml_get(curbuf->b_ml.ml_line_count) == NUL)
+	{
 	    ml_delete(curbuf->b_ml.ml_line_count, TRUE);
+
+	    /* If the cursor was in that line, move it to the end of the last
+	     * line. */
+	    if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count)
+	    {
+		curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count;
+		coladvance((colnr_T)MAXCOL);
+	    }
+	}
 #endif
 	auto_format(FALSE, TRUE);
     }
diff --git a/src/spell.c b/src/spell.c
index 32ce2b4..9850777 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -2039,7 +2039,7 @@
 
     /*
      * Start looking for bad word at the start of the line, because we can't
-     * start halfway a word, we don't know where the it starts or ends.
+     * start halfway a word, we don't know where it starts or ends.
      *
      * When searching backwards, we continue in the line to find the last
      * bad word (in the cursor line: before the cursor).