diff --git a/src/edit.c b/src/edit.c
index 53eabe6..f4f3f9a 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -1045,8 +1045,10 @@
 	case K_S_UP:	/* <S-Up> */
 	case K_PAGEUP:
 	case K_KPAGEUP:
+#ifdef FEAT_INS_EXPAND
 	    if (pum_visible())
 		goto docomplete;
+#endif
 	    ins_pageup();
 	    break;
 
@@ -1060,8 +1062,10 @@
 	case K_S_DOWN:	/* <S-Down> */
 	case K_PAGEDOWN:
 	case K_KPAGEDOWN:
+#ifdef FEAT_INS_EXPAND
 	    if (pum_visible())
 		goto docomplete;
+#endif
 	    ins_pagedown();
 	    break;
 
@@ -5073,6 +5077,7 @@
 #endif
 	ResetRedobuff();
 	AppendToRedobuff((char_u *)"1i");   /* pretend we start an insertion */
+	new_insert_skip = 2;
     }
     else if (ins_need_undo)
     {
diff --git a/src/ex_getln.c b/src/ex_getln.c
index bc5aca5..508c563 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1105,6 +1105,7 @@
 		{
 		    cmdline_paste(c, i == Ctrl_R);
 
+#ifdef FEAT_EVAL
 		    /* When there was a serious error abort getting the
 		     * command line. */
 		    if (aborting())
@@ -1113,7 +1114,7 @@
 					   putting it in history */
 			goto returncmd; /* back to cmd mode */
 		    }
-
+#endif
 		    KeyTyped = FALSE;	/* Don't do p_wc completion. */
 #ifdef FEAT_EVAL
 		    if (new_cmdpos >= 0)
diff --git a/src/misc1.c b/src/misc1.c
index 85b81fd..a5a1805 100644
--- a/src/misc1.c
+++ b/src/misc1.c
@@ -2145,6 +2145,7 @@
  *
  * return FAIL for failure, OK otherwise
  */
+/*ARGSUSED*/
     int
 del_bytes(count, fixpos, use_delcombine)
     long	count;
diff --git a/src/ops.c b/src/ops.c
index 73976d1..0c1e853 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -1844,7 +1844,11 @@
 	    }
 #endif
 	    (void)del_bytes((long)n, restart_edit == NUL && !virtual_op,
-				oap->op_type == OP_DELETE && !oap->is_VIsual);
+				oap->op_type == OP_DELETE
+#ifdef FEAT_VISUAL
+				    && !oap->is_VIsual
+#endif
+							);
 	}
 	else				/* delete characters between lines */
 	{
@@ -1865,7 +1869,11 @@
 	    curwin->w_cursor.col = 0;
 	    (void)del_bytes((long)(oap->end.col + 1 - !oap->inclusive),
 					   restart_edit == NUL && !virtual_op,
-				oap->op_type == OP_DELETE && !oap->is_VIsual);
+				oap->op_type == OP_DELETE
+#ifdef FEAT_VISUAL
+					&& !oap->is_VIsual
+#endif
+							    );
 	    curwin->w_cursor = curpos;		/* restore curwin->w_cursor */
 
 	    (void)do_join(FALSE);
diff --git a/src/proto/fileio.pro b/src/proto/fileio.pro
index 4348d36..816de42 100644
--- a/src/proto/fileio.pro
+++ b/src/proto/fileio.pro
@@ -41,7 +41,7 @@
 char_u *get_augroup_name __ARGS((expand_T *xp, int idx));
 char_u *set_context_in_autocmd __ARGS((expand_T *xp, char_u *arg, int doautocmd));
 char_u *get_event_name __ARGS((expand_T *xp, int idx));
-int au_exists __ARGS((char_u *name, char_u *name_end, char_u *pattern));
+int au_exists __ARGS((char_u *arg));
 int match_file_pat __ARGS((char_u *pattern, regprog_T *prog, char_u *fname, char_u *sfname, char_u *tail, int allow_dirs));
 int match_file_list __ARGS((char_u *list, char_u *sfname, char_u *ffname));
 char_u *file_pat_to_reg_pat __ARGS((char_u *pat, char_u *pat_end, char *allow_dirs, int no_bslash));
diff --git a/src/structs.h b/src/structs.h
index 208b2d0..5b91cec 100644
--- a/src/structs.h
+++ b/src/structs.h
@@ -1392,6 +1392,7 @@
     int		b_start_ffc;	/* first char of 'ff' when edit started */
 #ifdef FEAT_MBYTE
     char_u	*b_start_fenc;	/* 'fileencoding' when edit started or NULL */
+    int		b_bad_char;	/* "++bad=" argument when edit started or 0 */
 #endif
 
 #ifdef FEAT_EVAL
diff --git a/src/version.h b/src/version.h
index a429308..cc5a45b 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 (2005 Dec 18)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 18, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 19)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 19, compiled "
