updated for version 7.0c03
diff --git a/src/auto/configure b/src/auto/configure
index 2eea4af..e8b9a5d 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -2992,7 +2992,7 @@
   elif test "x$MACARCH" = "xintel"; then
     CPPFLAGS="$CPPFLAGS -arch intel"
     LDFLAGS="$LDFLAGS -arch intel"
-  else
+  elif test "x$MACARCH" = "xppc"; then
     CPPFLAGS="$CPPFLAGS -arch ppc"
     LDFLAGS="$LDFLAGS -arch ppc"
   fi
diff --git a/src/configure.in b/src/configure.in
index 2a71f42..aedd73a 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -136,7 +136,7 @@
   elif test "x$MACARCH" = "xintel"; then
     CPPFLAGS="$CPPFLAGS -arch intel"
     LDFLAGS="$LDFLAGS -arch intel"
-  else
+  elif test "x$MACARCH" = "xppc"; then
     CPPFLAGS="$CPPFLAGS -arch ppc"
     LDFLAGS="$LDFLAGS -arch ppc"
   fi
diff --git a/src/doc-txt.icns b/src/doc-txt.icns
index bcd11d6..c66b0ce 100644
--- a/src/doc-txt.icns
+++ b/src/doc-txt.icns
Binary files differ
diff --git a/src/edit.c b/src/edit.c
index 5159a34..da15010 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -4497,6 +4497,8 @@
 	    if (compl_col >= (colnr_T)startcol)
 		return FAIL;
 	    spell_expand_check_cap(compl_col);
+	    /* Need to obtain "line" again, it may have become invalid. */
+	    line = ml_get(curwin->w_cursor.lnum);
 	    compl_length = (int)curs_col - compl_col;
 	    compl_pattern = vim_strnsave(line + compl_col, compl_length);
 	    if (compl_pattern == NULL)
diff --git a/src/eval.c b/src/eval.c
index 63abcba..4697e97 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -6900,7 +6900,7 @@
     {"append",		2, 2, f_append},
     {"argc",		0, 0, f_argc},
     {"argidx",		0, 0, f_argidx},
-    {"argv",		1, 1, f_argv},
+    {"argv",		0, 1, f_argv},
     {"browse",		4, 4, f_browse},
     {"browsedir",	2, 2, f_browsedir},
     {"bufexists",	1, 1, f_bufexists},
@@ -7651,12 +7651,19 @@
 {
     int		idx;
 
-    idx = get_tv_number_chk(&argvars[0], NULL);
-    if (idx >= 0 && idx < ARGCOUNT)
-	rettv->vval.v_string = vim_strsave(alist_name(&ARGLIST[idx]));
-    else
-	rettv->vval.v_string = NULL;
-    rettv->v_type = VAR_STRING;
+    if (argvars[0].v_type != VAR_UNKNOWN)
+    {
+	idx = get_tv_number_chk(&argvars[0], NULL);
+	if (idx >= 0 && idx < ARGCOUNT)
+	    rettv->vval.v_string = vim_strsave(alist_name(&ARGLIST[idx]));
+	else
+	    rettv->vval.v_string = NULL;
+	rettv->v_type = VAR_STRING;
+    }
+    else if (rettv_list_alloc(rettv) == OK)
+	for (idx = 0; idx < ARGCOUNT; ++idx)
+	    list_append_string(rettv->vval.v_list,
+					       alist_name(&ARGLIST[idx]), -1);
 }
 
 /*
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index 8d261b7..832933a 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -5352,6 +5352,8 @@
 	{"DarkMagenta",  "#BB00BB"},
 	{"DarkGrey",	 "#BBBBBB"},
 	{"DarkYellow",	 "#BBBB00"},
+	{"Grey90",	 "#E5E5E5"},
+	{"Gray90",	 "#E5E5E5"},
 	{NULL, NULL}
     };
 
diff --git a/src/gui_mac.c b/src/gui_mac.c
index 420f16c..d9bb609 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -3642,6 +3642,8 @@
 	{"Grey",	RGB(0xC0, 0xC0, 0xC0)}, /*W*/
 	{"lightgray",	RGB(0xE0, 0xE0, 0xE0)}, /*W*/
 	{"lightgrey",	RGB(0xE0, 0xE0, 0xE0)}, /*W*/
+	{"gray90",	RGB(0xE5, 0xE5, 0xE5)}, /*W*/
+	{"grey90",	RGB(0xE5, 0xE5, 0xE5)}, /*W*/
 	{"white",	RGB(0xFF, 0xFF, 0xFF)},
 	{"darkred",	RGB(0x80, 0x00, 0x00)}, /*W*/
 	{"red",		RGB(0xDD, 0x08, 0x06)}, /*M*/
diff --git a/src/gui_photon.c b/src/gui_photon.c
index f702c41..e651922 100644
--- a/src/gui_photon.c
+++ b/src/gui_photon.c
@@ -2007,6 +2007,8 @@
 	{"Grey",	    RGB(0xC0, 0xC0, 0xC0)},
 	{"LightGray",	    RGB(0xD3, 0xD3, 0xD3)},
 	{"LightGrey",	    RGB(0xD3, 0xD3, 0xD3)},
+	{"Gray90",	    RGB(0xE5, 0xE5, 0xE5)},
+	{"Grey90",	    RGB(0xE5, 0xE5, 0xE5)},
 	{"White",	    RGB(0xFF, 0xFF, 0xFF)},
 	{"DarkRed",	    RGB(0x80, 0x00, 0x00)},
 	{"Red",		    RGB(0xFF, 0x00, 0x00)},
diff --git a/src/gui_riscos.c b/src/gui_riscos.c
index 59d2272..073bbfe 100644
--- a/src/gui_riscos.c
+++ b/src/gui_riscos.c
@@ -1145,6 +1145,8 @@
 	{ "LightGrey",		grgb(211,	211,	211)	},
 	{ "DarkGray",		grgb(169,	169,	169)	},
 	{ "DarkGrey",		grgb(169,	169,	169)	},
+	{ "Grey90",		grgb(229,	229,	229)	},
+	{ "Gray90",		grgb(229,	229,	229)	},
 
 	{ "Black",		grgb(0,		0,	0)	},
 	{ "White",		grgb(255,	255,	255)	},
diff --git a/src/gui_w48.c b/src/gui_w48.c
index 8b4684a..0f6cb7b 100644
--- a/src/gui_w48.c
+++ b/src/gui_w48.c
@@ -1070,6 +1070,12 @@
     if (!IsWindowVisible(s_hwnd))
 	ShowWindow(s_hwnd, SW_SHOWDEFAULT);
 
+#ifdef MSWIN_FIND_REPLACE
+    /* Init replace string here, so that we keep it when re-opening the
+     * dialog. */
+    s_findrep_struct.lpstrReplaceWith[0] = NUL;
+#endif
+
     return OK;
 }
 
@@ -1339,6 +1345,8 @@
 	{"Grey",		RGB(0xC0, 0xC0, 0xC0)},
 	{"LightGray",		RGB(0xE0, 0xE0, 0xE0)},
 	{"LightGrey",		RGB(0xE0, 0xE0, 0xE0)},
+	{"Gray90",		RGB(0xE5, 0xE5, 0xE5)},
+	{"Grey90",		RGB(0xE5, 0xE5, 0xE5)},
 	{"White",		RGB(0xFF, 0xFF, 0xFF)},
 	{"DarkRed",		RGB(0x80, 0x00, 0x00)},
 	{"Red",			RGB(0xFF, 0x00, 0x00)},
@@ -2370,11 +2378,8 @@
     if (wword)
 	s_findrep_struct.Flags |= FR_WHOLEWORD;
     if (entry_text != NULL && *entry_text != NUL)
-    {
 	vim_strncpy(s_findrep_struct.lpstrFindWhat, entry_text,
 					   s_findrep_struct.wFindWhatLen - 1);
-	s_findrep_struct.lpstrReplaceWith[0] = NUL;
-    }
     vim_free(entry_text);
 }
 #endif
diff --git a/src/gui_x11.c b/src/gui_x11.c
index 706291b..4330305 100644
--- a/src/gui_x11.c
+++ b/src/gui_x11.c
@@ -2296,6 +2296,8 @@
 	{"DarkMagenta",	"#BB00BB"},
 	{"DarkGrey",	"#BBBBBB"},
 	{"DarkYellow",	"#BBBB00"},
+	{"Gray90",	"#E5E5E5"},
+	{"Grey90",	"#E5E5E5"},
 	{NULL, NULL}
     };
 
diff --git a/src/option.c b/src/option.c
index d90e3ad..e0cfa13 100644
--- a/src/option.c
+++ b/src/option.c
@@ -431,9 +431,10 @@
 #define ISK_LATIN1  (char_u *)"@,48-57,_,192-255"
 
 /* 'isprint' for latin1 is also used for MS-Windows, where 0x80 is used for
- * the currency sign.  Thus this isn't really latin1... */
+ * the currency sign.  This isn't really latin1 but Windows-1252, but we can't
+ * detect that. */
 #if defined(MSDOS) || defined(MSWIN) || defined(OS2)
-# define ISP_LATIN1 (char_u *)"@,128,161-255"
+# define ISP_LATIN1 (char_u *)"@,~-255"
 #else
 # define ISP_LATIN1 (char_u *)"@,161-255"
 #endif
diff --git a/src/screen.c b/src/screen.c
index 60ffe99..01134a4 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -3106,8 +3106,9 @@
 #endif
 
 #ifdef FEAT_SYN_HL
-    /* Cursor line highlighting for 'cursorline'. */
-    if (wp->w_p_cul && lnum == wp->w_cursor.lnum)
+    /* Cursor line highlighting for 'cursorline'.  Not when Visual mode is
+     * active, because it's not clear what is selected then. */
+    if (wp->w_p_cul && lnum == wp->w_cursor.lnum && !VIsual_active)
     {
 	line_attr = hl_attr(HLF_CUL);
 	area_highlighting = TRUE;
diff --git a/src/syntax.c b/src/syntax.c
index f66f639..8230520 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -6186,9 +6186,9 @@
 #endif
 #ifdef FEAT_SYN_HL
 	CENT("CursorColumn term=reverse ctermbg=LightGrey",
-	     "CursorColumn term=reverse ctermbg=LightGrey guibg=LightGrey"),
+	     "CursorColumn term=reverse ctermbg=LightGrey guibg=Grey90"),
 	CENT("CursorLine term=underline cterm=underline",
-	     "CursorLine term=underline cterm=underline guibg=LightGrey"),
+	     "CursorLine term=underline cterm=underline guibg=Grey90"),
 #endif
 #ifdef FEAT_GUI
 	"Normal gui=NONE",
@@ -6262,9 +6262,9 @@
 #endif
 #ifdef FEAT_SYN_HL
 	CENT("CursorColumn term=reverse ctermbg=DarkGrey",
-	     "CursorColumn term=reverse ctermbg=DarkGrey guibg=DarkGrey"),
+	     "CursorColumn term=reverse ctermbg=DarkGrey guibg=Grey90"),
 	CENT("CursorLine term=underline cterm=underline",
-	     "CursorLine term=underline cterm=underline guibg=DarkGrey"),
+	     "CursorLine term=underline cterm=underline guibg=Grey90"),
 #endif
 #ifdef FEAT_GUI
 	"Normal gui=NONE",
diff --git a/src/version.h b/src/version.h
index ce5c971..5d450bb 100644
--- a/src/version.h
+++ b/src/version.h
@@ -35,6 +35,6 @@
  */
 #define VIM_VERSION_NODOT	"vim70c"
 #define VIM_VERSION_SHORT	"7.0c"
-#define VIM_VERSION_MEDIUM	"7.0c02 BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0c02 BETA (2006 Mar 28)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0c02 BETA (2006 Mar 28, compiled "
+#define VIM_VERSION_MEDIUM	"7.0c03 BETA"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0c03 BETA (2006 Mar 29)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0c03 BETA (2006 Mar 29, compiled "