diff --git a/src/GvimExt/GvimExt.reg b/src/GvimExt/GvimExt.reg
index 0169fe1..325c2e7 100644
--- a/src/GvimExt/GvimExt.reg
+++ b/src/GvimExt/GvimExt.reg
@@ -15,6 +15,6 @@
 [HKEY_LOCAL_MACHINE\Software\Vim\Gvim]
    "path"="gvim.exe"
 
-[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.0d]
-   "DisplayName"="Vim 7.0d: Edit with Vim popup menu entry"
+[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Vim 7.0e]
+   "DisplayName"="Vim 7.0e: Edit with Vim popup menu entry"
    "UninstallString"="uninstal.exe"
diff --git a/src/Makefile b/src/Makefile
index 0a8bbbe..bbcbc1c 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -880,7 +880,7 @@
 
 ### Vim version (adjusted by a script)
 VIMMAJOR = 7
-VIMMINOR = 0d
+VIMMINOR = 0e
 
 ### Location of Vim files (should not need to be changed, and  {{{1
 ### some things might not work when they are changed!)
diff --git a/src/auto/configure b/src/auto/configure
index 644d4ef..ed5ea56 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -14123,7 +14123,7 @@
 echo $ECHO_N "checking how to create tags... $ECHO_C" >&6
 test -f tags && mv tags tags.save
 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&5 2>&1; then
-  TAGPRG="ctags -I INIT+"
+  TAGPRG="ctags -I INIT+ --fields=+S"
 else
   (eval etags	   /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags"
   (eval etags -c   /dev/null) < /dev/null 1>&5 2>&1 && TAGPRG="etags -c"
diff --git a/src/configure.in b/src/configure.in
index 3b867e5..21a5f80 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -2668,6 +2668,7 @@
 
 dnl Check how we can run ctags
 dnl --version for Exuberant ctags (preferred)
+dnl       Add --fields=+S to get function signatures for omni completion.
 dnl -t for typedefs (many ctags have this)
 dnl -s for static functions (Elvis ctags only?)
 dnl -v for variables. Dangerous, most ctags take this for 'vgrind style'.
@@ -2675,7 +2676,7 @@
 AC_MSG_CHECKING(how to create tags)
 test -f tags && mv tags tags.save
 if (eval ctags --version /dev/null | grep Exuberant) < /dev/null 1>&AC_FD_CC 2>&1; then
-  TAGPRG="ctags -I INIT+"
+  TAGPRG="ctags -I INIT+ --fields=+S"
 else
   (eval etags	   /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags"
   (eval etags -c   /dev/null) < /dev/null 1>&AC_FD_CC 2>&1 && TAGPRG="etags -c"
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 9ba3e81..533b2cc 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -299,32 +299,38 @@
     int		result = 0;
 
     /* If the user interrupts, there's no way to stop qsort() immediately, but
-     * if we return 0 every time, qsort will assume it's done sorting and exit */
+     * if we return 0 every time, qsort will assume it's done sorting and
+     * exit. */
     if (sort_abort)
 	return 0;
     fast_breakcheck();
     if (got_int)
 	sort_abort = TRUE;
 
-    /* When sorting numbers "start_col_nr" is the number, not the column number. */
+    /* When sorting numbers "start_col_nr" is the number, not the column
+     * number. */
     if (sort_nr)
 	result = l1.start_col_nr - l2.start_col_nr;
     else
     {
-	/* We need to copy one line into "sortbuf1", because there is no guarantee
-	 * that the first pointer becomes invalid when obtaining the second one. */
-	STRNCPY(sortbuf1, ml_get(l1.lnum) + l1.start_col_nr, l1.end_col_nr - l1.start_col_nr + 1);
+	/* We need to copy one line into "sortbuf1", because there is no
+	 * guarantee that the first pointer becomes invalid when obtaining the
+	 * second one. */
+	STRNCPY(sortbuf1, ml_get(l1.lnum) + l1.start_col_nr,
+					 l1.end_col_nr - l1.start_col_nr + 1);
 	sortbuf1[l1.end_col_nr - l1.start_col_nr] = 0;
-	STRNCPY(sortbuf2, ml_get(l2.lnum) + l2.start_col_nr, l2.end_col_nr - l2.start_col_nr + 1);
+	STRNCPY(sortbuf2, ml_get(l2.lnum) + l2.start_col_nr,
+					 l2.end_col_nr - l2.start_col_nr + 1);
 	sortbuf2[l2.end_col_nr - l2.start_col_nr] = 0;
 
-	result = sort_ic ? STRICMP(sortbuf1, sortbuf2) : STRCMP(sortbuf1, sortbuf2);
+	result = sort_ic ? STRICMP(sortbuf1, sortbuf2)
+						 : STRCMP(sortbuf1, sortbuf2);
     }
-    /* If the two lines have the same value, preserve the original line order */
+
+    /* If two lines have the same value, preserve the original line order. */
     if (result == 0)
-	return (int) (l1.lnum - l2.lnum);
-    else
-	return result;
+	return (int)(l1.lnum - l2.lnum);
+    return result;
 }
 
 /*
diff --git a/src/fileio.c b/src/fileio.c
index e0ae301..46b50f8 100644
--- a/src/fileio.c
+++ b/src/fileio.c
@@ -1259,6 +1259,13 @@
 			if (bad_char_behavior != BAD_DROP)
 			{
 			    fio_flags = 0;	/* don't convert this */
+# ifdef USE_ICONV
+			    if (iconv_fd != (iconv_t)-1)
+			    {
+				iconv_close(iconv_fd);
+				iconv_fd = (iconv_t)-1;
+			    }
+# endif
 			    if (bad_char_behavior == BAD_KEEP)
 			    {
 				/* Keep the trailing bytes as-is. */
diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c
index b44100e..9eb85ce 100644
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -5338,17 +5338,33 @@
     /* A number of colors that some X11 systems don't have */
     static const char *const vimnames[][2] =
     {
-	{"LightRed",	 "#FFBBBB"},
-	{"LightGreen",	 "#88FF88"},
-	{"LightMagenta", "#FFBBFF"},
-	{"DarkCyan",	 "#008888"},
-	{"DarkBlue",	 "#0000BB"},
-	{"DarkRed",	 "#BB0000"},
-	{"DarkMagenta",  "#BB00BB"},
-	{"DarkGrey",	 "#BBBBBB"},
-	{"DarkYellow",	 "#BBBB00"},
-	{"Grey90",	 "#E5E5E5"},
-	{"Gray90",	 "#E5E5E5"},
+	{"LightRed",	"#FFBBBB"},
+	{"LightGreen",	"#88FF88"},
+	{"LightMagenta","#FFBBFF"},
+	{"DarkCyan",	"#008888"},
+	{"DarkBlue",	"#0000BB"},
+	{"DarkRed",	"#BB0000"},
+	{"DarkMagenta", "#BB00BB"},
+	{"DarkGrey",	"#BBBBBB"},
+	{"DarkYellow",	"#BBBB00"},
+	{"Gray10",	"#1A1A1A"},
+	{"Grey10",	"#1A1A1A"},
+	{"Gray20",	"#333333"},
+	{"Grey20",	"#333333"},
+	{"Gray30",	"#4D4D4D"},
+	{"Grey30",	"#4D4D4D"},
+	{"Gray40",	"#666666"},
+	{"Grey40",	"#666666"},
+	{"Gray50",	"#7F7F7F"},
+	{"Grey50",	"#7F7F7F"},
+	{"Gray60",	"#999999"},
+	{"Grey60",	"#999999"},
+	{"Gray70",	"#B3B3B3"},
+	{"Grey70",	"#B3B3B3"},
+	{"Gray80",	"#CCCCCC"},
+	{"Grey80",	"#CCCCCC"},
+	{"Gray90",	"#E5E5E5"},
+	{"Grey90",	"#E5E5E5"},
 	{NULL, NULL}
     };
 
diff --git a/src/gui_mac.c b/src/gui_mac.c
index d9bb609..762d30c 100644
--- a/src/gui_mac.c
+++ b/src/gui_mac.c
@@ -3642,6 +3642,22 @@
 	{"Grey",	RGB(0xC0, 0xC0, 0xC0)}, /*W*/
 	{"lightgray",	RGB(0xE0, 0xE0, 0xE0)}, /*W*/
 	{"lightgrey",	RGB(0xE0, 0xE0, 0xE0)}, /*W*/
+	{"gray10",	RGB(0x1A, 0x1A, 0x1A)}, /*W*/
+	{"grey10",	RGB(0x1A, 0x1A, 0x1A)}, /*W*/
+	{"gray20",	RGB(0x33, 0x33, 0x33)}, /*W*/
+	{"grey20",	RGB(0x33, 0x33, 0x33)}, /*W*/
+	{"gray30",	RGB(0x4D, 0x4D, 0x4D)}, /*W*/
+	{"grey30",	RGB(0x4D, 0x4D, 0x4D)}, /*W*/
+	{"gray40",	RGB(0x66, 0x66, 0x66)}, /*W*/
+	{"grey40",	RGB(0x66, 0x66, 0x66)}, /*W*/
+	{"gray50",	RGB(0x7F, 0x7F, 0x7F)}, /*W*/
+	{"grey50",	RGB(0x7F, 0x7F, 0x7F)}, /*W*/
+	{"gray60",	RGB(0x99, 0x99, 0x99)}, /*W*/
+	{"grey60",	RGB(0x99, 0x99, 0x99)}, /*W*/
+	{"gray70",	RGB(0xB3, 0xB3, 0xB3)}, /*W*/
+	{"grey70",	RGB(0xB3, 0xB3, 0xB3)}, /*W*/
+	{"gray80",	RGB(0xCC, 0xCC, 0xCC)}, /*W*/
+	{"grey80",	RGB(0xCC, 0xCC, 0xCC)}, /*W*/
 	{"gray90",	RGB(0xE5, 0xE5, 0xE5)}, /*W*/
 	{"grey90",	RGB(0xE5, 0xE5, 0xE5)}, /*W*/
 	{"white",	RGB(0xFF, 0xFF, 0xFF)},
diff --git a/src/gui_photon.c b/src/gui_photon.c
index e651922..3408ba6 100644
--- a/src/gui_photon.c
+++ b/src/gui_photon.c
@@ -2007,6 +2007,22 @@
 	{"Grey",	    RGB(0xC0, 0xC0, 0xC0)},
 	{"LightGray",	    RGB(0xD3, 0xD3, 0xD3)},
 	{"LightGrey",	    RGB(0xD3, 0xD3, 0xD3)},
+	{"Gray10",	    RGB(0x1A, 0x1A, 0x1A)},
+	{"Grey10",	    RGB(0x1A, 0x1A, 0x1A)},
+	{"Gray20",	    RGB(0x33, 0x33, 0x33)},
+	{"Grey20",	    RGB(0x33, 0x33, 0x33)},
+	{"Gray30",	    RGB(0x4D, 0x4D, 0x4D)},
+	{"Grey30",	    RGB(0x4D, 0x4D, 0x4D)},
+	{"Gray40",	    RGB(0x66, 0x66, 0x66)},
+	{"Grey40",	    RGB(0x66, 0x66, 0x66)},
+	{"Gray50",	    RGB(0x7F, 0x7F, 0x7F)},
+	{"Grey50",	    RGB(0x7F, 0x7F, 0x7F)},
+	{"Gray60",	    RGB(0x99, 0x99, 0x99)},
+	{"Grey60",	    RGB(0x99, 0x99, 0x99)},
+	{"Gray70",	    RGB(0xB3, 0xB3, 0xB3)},
+	{"Grey70",	    RGB(0xB3, 0xB3, 0xB3)},
+	{"Gray80",	    RGB(0xCC, 0xCC, 0xCC)},
+	{"Grey80",	    RGB(0xCC, 0xCC, 0xCC)},
 	{"Gray90",	    RGB(0xE5, 0xE5, 0xE5)},
 	{"Grey90",	    RGB(0xE5, 0xE5, 0xE5)},
 	{"White",	    RGB(0xFF, 0xFF, 0xFF)},
diff --git a/src/gui_riscos.c b/src/gui_riscos.c
index 073bbfe..46e79c0 100644
--- a/src/gui_riscos.c
+++ b/src/gui_riscos.c
@@ -1145,8 +1145,24 @@
 	{ "LightGrey",		grgb(211,	211,	211)	},
 	{ "DarkGray",		grgb(169,	169,	169)	},
 	{ "DarkGrey",		grgb(169,	169,	169)	},
-	{ "Grey90",		grgb(229,	229,	229)	},
+	{ "Gray10",		grgb(26,	26,	26)	},
+	{ "Grey10",		grgb(26,	26,	26)	},
+	{ "Gray20",		grgb(51,	51,	51)	},
+	{ "Grey20",		grgb(51,	51,	51)	},
+	{ "Gray30",		grgb(77,	77,	77)	},
+	{ "Grey30",		grgb(77,	77,	77)	},
+	{ "Gray40",		grgb(102,	102,	102)	},
+	{ "Grey40",		grgb(102,	102,	102)	},
+	{ "Gray50",		grgb(127,	127,	127)	},
+	{ "Grey50",		grgb(127,	127,	127)	},
+	{ "Gray60",		grgb(153,	153,	153)	},
+	{ "Grey60",		grgb(153,	153,	153)	},
+	{ "Gray70",		grgb(179,	179,	179)	},
+	{ "Grey70",		grgb(179,	179,	179)	},
+	{ "Gray80",		grgb(204,	204,	204)	},
+	{ "Grey80",		grgb(204,	204,	204)	},
 	{ "Gray90",		grgb(229,	229,	229)	},
+	{ "Grey90",		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 f99662f..ef1e071 100644
--- a/src/gui_w48.c
+++ b/src/gui_w48.c
@@ -1343,6 +1343,22 @@
 	{"Grey",		RGB(0xC0, 0xC0, 0xC0)},
 	{"LightGray",		RGB(0xE0, 0xE0, 0xE0)},
 	{"LightGrey",		RGB(0xE0, 0xE0, 0xE0)},
+	{"Gray10",		RGB(0x1A, 0x1A, 0x1A)},
+	{"Grey10",		RGB(0x1A, 0x1A, 0x1A)},
+	{"Gray20",		RGB(0x33, 0x33, 0x33)},
+	{"Grey20",		RGB(0x33, 0x33, 0x33)},
+	{"Gray30",		RGB(0x4D, 0x4D, 0x4D)},
+	{"Grey30",		RGB(0x4D, 0x4D, 0x4D)},
+	{"Gray40",		RGB(0x66, 0x66, 0x66)},
+	{"Grey40",		RGB(0x66, 0x66, 0x66)},
+	{"Gray50",		RGB(0x7F, 0x7F, 0x7F)},
+	{"Grey50",		RGB(0x7F, 0x7F, 0x7F)},
+	{"Gray60",		RGB(0x99, 0x99, 0x99)},
+	{"Grey60",		RGB(0x99, 0x99, 0x99)},
+	{"Gray70",		RGB(0xB3, 0xB3, 0xB3)},
+	{"Grey70",		RGB(0xB3, 0xB3, 0xB3)},
+	{"Gray80",		RGB(0xCC, 0xCC, 0xCC)},
+	{"Grey80",		RGB(0xCC, 0xCC, 0xCC)},
 	{"Gray90",		RGB(0xE5, 0xE5, 0xE5)},
 	{"Grey90",		RGB(0xE5, 0xE5, 0xE5)},
 	{"White",		RGB(0xFF, 0xFF, 0xFF)},
diff --git a/src/gui_x11.c b/src/gui_x11.c
index 4330305..c49bbe5 100644
--- a/src/gui_x11.c
+++ b/src/gui_x11.c
@@ -2296,6 +2296,22 @@
 	{"DarkMagenta",	"#BB00BB"},
 	{"DarkGrey",	"#BBBBBB"},
 	{"DarkYellow",	"#BBBB00"},
+	{"Gray10",	"#1A1A1A"},
+	{"Grey10",	"#1A1A1A"},
+	{"Gray20",	"#333333"},
+	{"Grey20",	"#333333"},
+	{"Gray30",	"#4D4D4D"},
+	{"Grey30",	"#4D4D4D"},
+	{"Gray40",	"#666666"},
+	{"Grey40",	"#666666"},
+	{"Gray50",	"#7F7F7F"},
+	{"Grey50",	"#7F7F7F"},
+	{"Gray60",	"#999999"},
+	{"Grey60",	"#999999"},
+	{"Gray70",	"#B3B3B3"},
+	{"Grey70",	"#B3B3B3"},
+	{"Gray80",	"#CCCCCC"},
+	{"Grey80",	"#CCCCCC"},
 	{"Gray90",	"#E5E5E5"},
 	{"Grey90",	"#E5E5E5"},
 	{NULL, NULL}
diff --git a/src/misc1.c b/src/misc1.c
index dd1da46..6c3b5ad 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -6058,7 +6058,7 @@
     pos_T	cur_curpos;
     int		amount;
     int		scope_amount;
-    int		cur_amount;
+    int		cur_amount = MAXCOL;
     colnr_T	col;
     char_u	*theline;
     char_u	*linecopy;
@@ -6409,7 +6409,6 @@
 	else
 	{
 	    amount = -1;
-	    cur_amount = MAXCOL;
 	    our_paren_pos = *trypos;
 	    for (lnum = cur_curpos.lnum - 1; lnum > our_paren_pos.lnum; --lnum)
 	    {
@@ -6562,7 +6561,7 @@
 		/* Add ind_unclosed2 for each '(' before our matching one, but
 		 * ignore (void) before the line (ignore_paren_col). */
 		col = our_paren_pos.col;
-		while (our_paren_pos.col > ignore_paren_col)
+		while ((int)our_paren_pos.col > ignore_paren_col)
 		{
 		    --our_paren_pos.col;
 		    switch (*ml_get_pos(&our_paren_pos))
diff --git a/src/screen.c b/src/screen.c
index d371ed9..8d2a69e 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -8971,6 +8971,10 @@
 	    TabPageIdxs[Columns - 1] = -999;
 	}
     }
+
+    /* Reset the flag here again, in case evaluating 'tabline' causes it to be
+     * set. */
+    redraw_tabline = FALSE;
 }
 
 /*
diff --git a/src/syntax.c b/src/syntax.c
index 2686828..d6ce69c 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -6115,10 +6115,6 @@
 	CENT("TabLineFill term=reverse cterm=reverse",
 	     "TabLineFill term=reverse cterm=reverse gui=reverse"),
 #endif
-#ifdef FEAT_AUTOCMD
-	CENT("MatchParen term=reverse ctermbg=Cyan",
-	     "MatchParen term=reverse ctermbg=Cyan guibg=Cyan"),
-#endif
 #ifdef FEAT_GUI
 	"Cursor guibg=fg guifg=bg",
 	"lCursor guibg=fg guifg=bg", /* should be different, but what? */
@@ -6196,6 +6192,10 @@
 	CENT("CursorLine term=underline cterm=underline",
 	     "CursorLine term=underline cterm=underline guibg=Grey90"),
 #endif
+#ifdef FEAT_AUTOCMD
+	CENT("MatchParen term=reverse ctermbg=Cyan",
+	     "MatchParen term=reverse ctermbg=Cyan guibg=Cyan"),
+#endif
 #ifdef FEAT_GUI
 	"Normal gui=NONE",
 #endif
@@ -6268,9 +6268,13 @@
 #endif
 #ifdef FEAT_SYN_HL
 	CENT("CursorColumn term=reverse ctermbg=DarkGrey",
-	     "CursorColumn term=reverse ctermbg=DarkGrey guibg=Grey90"),
+	     "CursorColumn term=reverse ctermbg=DarkGrey guibg=Grey40"),
 	CENT("CursorLine term=underline cterm=underline",
-	     "CursorLine term=underline cterm=underline guibg=Grey90"),
+	     "CursorLine term=underline cterm=underline guibg=Grey40"),
+#endif
+#ifdef FEAT_AUTOCMD
+	CENT("MatchParen term=reverse ctermbg=DarkCyan",
+	     "MatchParen term=reverse ctermbg=DarkCyan guibg=DarkCyan"),
 #endif
 #ifdef FEAT_GUI
 	"Normal gui=NONE",
diff --git a/src/version.h b/src/version.h
index fdb32c8..7f6e96e 100644
--- a/src/version.h
+++ b/src/version.h
@@ -33,8 +33,8 @@
  * VIM_VERSION_MEDIUM is used for the startup-screen.
  * VIM_VERSION_LONG is used for the ":version" command and "Vim -h".
  */
-#define VIM_VERSION_NODOT	"vim70d"
-#define VIM_VERSION_SHORT	"7.0d"
-#define VIM_VERSION_MEDIUM	"7.0d05 BETA"
-#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0d05 BETA (2006 Apr 15)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0d05 BETA (2006 Apr 15, compiled "
+#define VIM_VERSION_NODOT	"vim70e"
+#define VIM_VERSION_SHORT	"7.0e"
+#define VIM_VERSION_MEDIUM	"7.0e BETA"
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0e BETA (2006 Apr 16)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0e BETA (2006 Apr 16, compiled "
diff --git a/src/window.c b/src/window.c
index 5ee8172..dabfe2d 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1705,8 +1705,11 @@
 			    && (room + (totwincount - 2))
 						  / (totwincount - 1) > p_wiw)
 		    {
-			next_curwin_size = (room + p_wiw + totwincount * p_wmw
-					   + (totwincount - 1)) / totwincount;
+			/* Can make all windows wider than 'winwidth', spread
+			 * the room equally. */
+			next_curwin_size = (room + p_wiw
+					    + (totwincount - 1) * p_wmw
+					    + (totwincount - 1)) / totwincount;
 			room -= next_curwin_size - p_wiw;
 		    }
 		    else
@@ -1847,7 +1850,10 @@
 			    && (room + (totwincount - 2))
 						   / (totwincount - 1) > p_wh)
 		    {
-			next_curwin_size = (room + p_wh + totwincount * p_wmh
+			/* can make all windows higher than 'winheight',
+			 * spread the room equally. */
+			next_curwin_size = (room + p_wh
+					   + (totwincount - 1) * p_wmh
 					   + (totwincount - 1)) / totwincount;
 			room -= next_curwin_size - p_wh;
 		    }
