diff --git a/src/edit.c b/src/edit.c
index 98d287a..5809df1 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -129,7 +129,7 @@
 static void ins_compl_upd_pum __ARGS((void));
 static void ins_compl_del_pum __ARGS((void));
 static int  pum_wanted __ARGS((void));
-static int  pum_two_or_more __ARGS((void));
+static int  pum_enough_matches __ARGS((void));
 static void ins_compl_dictionaries __ARGS((char_u *dict, char_u *pat, int flags, int thesaurus));
 static void ins_compl_files __ARGS((int count, char_u **files, int thesaurus, int flags, regmatch_T *regmatch, char_u *buf, int *dir));
 static char_u *find_line_end __ARGS((char_u *ptr));
@@ -2347,7 +2347,7 @@
     static int
 pum_wanted()
 {
-    /* 'completeopt' must contain "menu" */
+    /* 'completeopt' must contain "menu" or "menuone" */
     if (vim_strchr(p_cot, 'm') == NULL)
 	return FALSE;
 
@@ -2363,9 +2363,10 @@
 
 /*
  * Return TRUE if there are two or more matches to be shown in the popup menu.
+ * One if 'completopt' contains "menuone".
  */
     static int
-pum_two_or_more()
+pum_enough_matches()
 {
     compl_T     *compl;
     int		i;
@@ -2382,6 +2383,8 @@
 	compl = compl->cp_next;
     } while (compl != compl_first_match);
 
+    if (strstr((char *)p_cot, "menuone") != NULL)
+	return (i >= 1);
     return (i >= 2);
 }
 
@@ -2401,7 +2404,7 @@
     colnr_T	col;
     int		lead_len = 0;
 
-    if (!pum_wanted() || !pum_two_or_more())
+    if (!pum_wanted() || !pum_enough_matches())
 	return;
 
     /* Update the screen before drawing the popup menu over it. */
diff --git a/src/globals.h b/src/globals.h
index f13b369..9e0f3e4 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1210,7 +1210,8 @@
 # define PRT_UNIT_NAMES {"pc", "in", "mm", "pt"}
 #endif
 
-#if defined(FEAT_PRINTER) || defined(FEAT_WINDOWS)
+#if (defined(FEAT_PRINTER) && defined(FEAT_STL_OPT)) \
+	    || defined(FEAT_GUI_TABLINE)
 /* Page number used for %N in 'pageheader' and 'guitablabel'. */
 EXTERN linenr_T printer_page_num;
 #endif
diff --git a/src/option.c b/src/option.c
index d692edf..23b6be8 100644
--- a/src/option.c
+++ b/src/option.c
@@ -2762,7 +2762,7 @@
 static char *(p_fcl_values[]) = {"all", NULL};
 #endif
 #ifdef FEAT_INS_EXPAND
-static char *(p_cot_values[]) = {"menu", "longest", NULL};
+static char *(p_cot_values[]) = {"menu", "menuone", "longest", NULL};
 #endif
 
 static void set_option_default __ARGS((int, int opt_flags, int compatible));
diff --git a/src/screen.c b/src/screen.c
index f799b58..c53feca 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -5610,7 +5610,7 @@
 	/* Use 'tabline'.  Always at the first line of the screen. */
 	p = p_tal;
 	row = 0;
-	fillchar = t_colors < 8 ? '_' : ' ';
+	fillchar = ' ';
 	attr = hl_attr(HLF_TPF);
 	maxwidth = Columns;
 # ifdef FEAT_EVAL
diff --git a/src/structs.h b/src/structs.h
index 5b1aed6..6a00be1 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -151,7 +151,7 @@
     long	wo_fml;
 # define w_p_fml w_onebuf_opt.wo_fml	/* 'foldminlines' */
     long	wo_fdn;
-# define w_p_fdn w_onebuf_opt.wo_fdn	/* 'foldnextmax' */
+# define w_p_fdn w_onebuf_opt.wo_fdn	/* 'foldnestmax' */
 # ifdef FEAT_EVAL
     char_u	*wo_fde;
 # define w_p_fde w_onebuf_opt.wo_fde	/* 'foldexpr' */
diff --git a/src/version.h b/src/version.h
index 9df1913..5703a06 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 (2006 Mar 2)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 2, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 3)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2006 Mar 3, compiled "
