diff --git a/src/edit.c b/src/edit.c
index c21c7e3..23dd57e 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -2657,7 +2657,7 @@
 		}
 		for (temp = 0; p[temp]; ++temp)
 		    AppendCharToRedobuff(K_BS);
-		AppendToRedobuffLit(ptr);
+		AppendToRedobuffLit(ptr, -1);
 	    }
 
 #ifdef FEAT_CINDENT
@@ -4240,7 +4240,7 @@
 		return;
 	    p[len - 1] = NUL;
 	    ins_str(p);
-	    AppendToRedobuffLit(p);
+	    AppendToRedobuffLit(p, -1);
 	    ctrlv = FALSE;
 	}
     }
@@ -4756,7 +4756,7 @@
 	else
 	    i = 0;
 	if (buf[i] != NUL)
-	    AppendToRedobuffLit(buf + i);
+	    AppendToRedobuffLit(buf + i, -1);
     }
     else
     {
diff --git a/src/ex_cmds.c b/src/ex_cmds.c
index 1d8348d..006733c 100644
--- a/src/ex_cmds.c
+++ b/src/ex_cmds.c
@@ -921,7 +921,7 @@
 
     if (bangredo)	    /* put cmd in redo buffer for ! command */
     {
-	AppendToRedobuffLit(prevcmd);
+	AppendToRedobuffLit(prevcmd, -1);
 	AppendToRedobuff((char_u *)"\n");
 	bangredo = FALSE;
     }
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 3e001a2..a49dfce 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -2826,11 +2826,7 @@
 		if (k == len && found && *np != NUL)
 		{
 		    if (gap == &ucmds)
-		    {
-			if (xp != NULL)
-			    xp->xp_context = EXPAND_UNSUCCESSFUL;
 			return NULL;
-		    }
 		    amb_local = TRUE;
 		}
 
@@ -3091,6 +3087,8 @@
 		    NULL
 # endif
 		    );
+	    if (p == NULL)
+		ea.cmdidx = CMD_SIZE;	/* ambiguous user command */
 	}
 #endif
     }
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 508c563..335f2a4 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -2765,9 +2765,17 @@
     regname = may_get_selection(regname);
 #endif
 
-    /* Need to save and restore ccline. */
+    /* Need to save and restore ccline.  And go into the sandbox to avoid
+     * nasty things like going to another buffer when evaluating an
+     * expression. */
     save_cmdline(&save_ccline);
+#ifdef HAVE_SANDBOX
+    ++sandbox;
+#endif
     i = get_spec_reg(regname, &arg, &allocated, TRUE);
+#ifdef HAVE_SANDBOX
+    --sandbox;
+#endif
     restore_cmdline(&save_ccline);
 
     if (i)
diff --git a/src/getchar.c b/src/getchar.c
index 69cebae..c1c9bca 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -529,16 +529,18 @@
  * K_SPECIAL and CSI are escaped as well.
  */
     void
-AppendToRedobuffLit(s)
-    char_u	*s;
+AppendToRedobuffLit(str, len)
+    char_u	*str;
+    int		len;	    /* length of "str" or -1 for up to the NUL */
 {
+    char_u	*s = str;
     int		c;
     char_u	*start;
 
     if (block_redo)
 	return;
 
-    while (*s != NUL)
+    while (len < 0 ? *s != NUL : s - str < len)
     {
 	/* Put a string of normal characters in the redo buffer (that's
 	 * faster). */
@@ -547,7 +549,7 @@
 #ifndef EBCDIC
 		&& *s < DEL	/* EBCDIC: all chars above space are normal */
 #endif
-		)
+		&& (len < 0 || s - str < len))
 	    ++s;
 
 	/* Don't put '0' or '^' as last character, just in case a CTRL-D is
@@ -557,29 +559,29 @@
 	if (s > start)
 	    add_buff(&redobuff, start, (long)(s - start));
 
-	if (*s != NUL)
-	{
-	    /* Handle a special or multibyte character. */
-#ifdef FEAT_MBYTE
-	    if (has_mbyte)
-		/* Handle composing chars separately. */
-		c = mb_cptr2char_adv(&s);
-	    else
-#endif
-		c = *s++;
-	    if (c < ' ' || c == DEL || (*s == NUL && (c == '0' || c == '^')))
-		add_char_buff(&redobuff, Ctrl_V);
+	if (*s == NUL || (len >= 0 && s - str >= len))
+	    break;
 
-	    /* CTRL-V '0' must be inserted as CTRL-V 048 (EBCDIC: xf0) */
-	    if (*s == NUL && c == '0')
-#ifdef EBCDIC
-		add_buff(&redobuff, (char_u *)"xf0", 3L);
-#else
-		add_buff(&redobuff, (char_u *)"048", 3L);
+	/* Handle a special or multibyte character. */
+#ifdef FEAT_MBYTE
+	if (has_mbyte)
+	    /* Handle composing chars separately. */
+	    c = mb_cptr2char_adv(&s);
+	else
 #endif
-	    else
-		add_char_buff(&redobuff, c);
-	}
+	    c = *s++;
+	if (c < ' ' || c == DEL || (*s == NUL && (c == '0' || c == '^')))
+	    add_char_buff(&redobuff, Ctrl_V);
+
+	/* CTRL-V '0' must be inserted as CTRL-V 048 (EBCDIC: xf0) */
+	if (*s == NUL && c == '0')
+#ifdef EBCDIC
+	    add_buff(&redobuff, (char_u *)"xf0", 3L);
+#else
+	    add_buff(&redobuff, (char_u *)"048", 3L);
+#endif
+	else
+	    add_char_buff(&redobuff, c);
     }
 }
 
diff --git a/src/keymap.h b/src/keymap.h
index 88855f1..0aa4474 100644
--- a/src/keymap.h
+++ b/src/keymap.h
@@ -247,6 +247,7 @@
 
     , KE_DROP		/* DnD data is available */
     , KE_CURSORHOLD	/* CursorHold event */
+    , KE_NOP		/* doesn't do something */
 };
 
 /*
@@ -422,6 +423,7 @@
 #define K_X2RELEASE     TERMCAP2KEY(KS_EXTRA, KE_X2RELEASE)
 
 #define K_IGNORE	TERMCAP2KEY(KS_EXTRA, KE_IGNORE)
+#define K_NOP		TERMCAP2KEY(KS_EXTRA, KE_NOP)
 
 #define K_SNIFF		TERMCAP2KEY(KS_EXTRA, KE_SNIFF)
 
diff --git a/src/main.c b/src/main.c
index 89bad4c..551e980 100644
--- a/src/main.c
+++ b/src/main.c
@@ -871,7 +871,7 @@
     /* If ":startinsert" command used, stuff a dummy command to be able to
      * call normal_cmd(), which will then start Insert mode. */
     if (restart_edit != 0)
-	stuffcharReadbuff(K_IGNORE);
+	stuffcharReadbuff(K_NOP);
 
 #ifdef FEAT_NETBEANS_INTG
     if (usingNetbeans)
diff --git a/src/misc2.c b/src/misc2.c
index e8845e2..c3f2b37 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -177,7 +177,7 @@
 #ifdef FEAT_VIRTUALEDIT
 	int width = W_WIDTH(curwin) - win_col_off(curwin);
 
-	if ((addspaces || finetune)
+	if (finetune
 		&& curwin->w_p_wrap
 # ifdef FEAT_VERTSPLIT
 		&& curwin->w_width != 0
@@ -188,10 +188,13 @@
 	    if (csize > 0)
 		csize--;
 
-	    if (wcol / width > (colnr_T)csize / width)
+	    if (wcol / width > (colnr_T)csize / width
+		    && ((State & INSERT) == 0 || (int)wcol > csize + 1))
 	    {
 		/* In case of line wrapping don't move the cursor beyond the
-		 * right screen edge. */
+		 * right screen edge.  In Insert mode allow going just beyond
+		 * the last character (like what happens when typing and
+		 * reaching the right window edge). */
 		wcol = (csize / width + 1) * width - 1;
 	    }
 	}
@@ -501,7 +504,7 @@
     {
 	/* Allow cursor past end-of-line in Insert mode, restarting Insert
 	 * mode or when in Visual mode and 'selection' isn't "old" */
-	if (State & INSERT || restart_edit
+	if ((State & INSERT) || restart_edit
 #ifdef FEAT_VISUAL
 		|| (VIsual_active && *p_sel != 'o')
 #endif
diff --git a/src/normal.c b/src/normal.c
index 80f0864..b0262b2 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -57,6 +57,7 @@
  * v_*(): functions called to handle Visual mode commands.
  */
 static void	nv_ignore __ARGS((cmdarg_T *cap));
+static void	nv_nop __ARGS((cmdarg_T *cap));
 static void	nv_error __ARGS((cmdarg_T *cap));
 static void	nv_help __ARGS((cmdarg_T *cap));
 static void	nv_addsub __ARGS((cmdarg_T *cap));
@@ -378,6 +379,7 @@
     {K_X2RELEASE, nv_mouse,	0,			0},
 #endif
     {K_IGNORE,	nv_ignore,	0,			0},
+    {K_NOP,	nv_nop,		0,			0},
     {K_INS,	nv_edit,	0,			0},
     {K_KINS,	nv_edit,	0,			0},
     {K_BS,	nv_ctrlh,	0,			0},
@@ -1415,7 +1417,7 @@
 		 * pattern to really repeat the same command.
 		 */
 		if (vim_strchr(p_cpo, CPO_REDO) == NULL)
-		    AppendToRedobuffLit(cap->searchbuf);
+		    AppendToRedobuffLit(cap->searchbuf, -1);
 		AppendToRedobuff(NL_STR);
 	    }
 	    else if (cap->cmdchar == ':')
@@ -1427,7 +1429,7 @@
 		    ResetRedobuff();
 		else
 		{
-		    AppendToRedobuffLit(repeat_cmdline);
+		    AppendToRedobuffLit(repeat_cmdline, -1);
 		    AppendToRedobuff(NL_STR);
 		    vim_free(repeat_cmdline);
 		    repeat_cmdline = NULL;
@@ -3928,7 +3930,6 @@
  * Used for CTRL-Q and CTRL-S to avoid problems with terminals that use
  * xon/xoff
  */
-/*ARGSUSED */
     static void
 nv_ignore(cap)
     cmdarg_T	*cap;
@@ -3937,6 +3938,17 @@
 }
 
 /*
+ * Command character that doesn't do anything, but unlike nv_ignore() does
+ * start edit().  Used for "startinsert" executed while starting up.
+ */
+/*ARGSUSED */
+    static void
+nv_nop(cap)
+    cmdarg_T	*cap;
+{
+}
+
+/*
  * Command character doesn't exist.
  */
     static void
@@ -6320,10 +6332,8 @@
 {
     cap->oap->motion_type = MCHAR;
     cap->oap->use_reg_one = TRUE;
-    if (cap->cmdchar == ')')
-	cap->oap->inclusive = FALSE;
-    else
-	cap->oap->inclusive = TRUE;
+    /* The motion used to be inclusive for "(", but that is not what Vi does. */
+    cap->oap->inclusive = FALSE;
     curwin->w_set_curswant = TRUE;
 
     if (findsent(cap->arg, cap->count1) == FAIL)
diff --git a/src/proto/getchar.pro b/src/proto/getchar.pro
index 2709989..e38f380 100644
--- a/src/proto/getchar.pro
+++ b/src/proto/getchar.pro
@@ -9,7 +9,7 @@
 void saveRedobuff __ARGS((void));
 void restoreRedobuff __ARGS((void));
 void AppendToRedobuff __ARGS((char_u *s));
-void AppendToRedobuffLit __ARGS((char_u *s));
+void AppendToRedobuffLit __ARGS((char_u *str, int len));
 void AppendCharToRedobuff __ARGS((int c));
 void AppendNumberToRedobuff __ARGS((long n));
 void stuffReadbuff __ARGS((char_u *s));
diff --git a/src/search.c b/src/search.c
index 5311141..5e370b8 100644
--- a/src/search.c
+++ b/src/search.c
@@ -2394,7 +2394,7 @@
 
 /*
  * findsent(dir, count) - Find the start of the next sentence in direction
- * 'dir' Sentences are supposed to end in ".", "!" or "?" followed by white
+ * "dir" Sentences are supposed to end in ".", "!" or "?" followed by white
  * space or a line break. Also stop at an empty line.
  * Return OK if the next sentence was found.
  */
diff --git a/src/spell.c b/src/spell.c
index 303ed58..d12a4bc 100644
--- a/src/spell.c
+++ b/src/spell.c
@@ -8594,7 +8594,8 @@
 	    /* For redo we use a change-word command. */
 	    ResetRedobuff();
 	    AppendToRedobuff((char_u *)"ciw");
-	    AppendToRedobuff(stp->st_word);
+	    AppendToRedobuffLit(p + c,
+		       STRLEN(stp->st_word) + sug.su_badlen - stp->st_orglen);
 	    AppendCharToRedobuff(ESC);
 	}
     }
diff --git a/src/term.c b/src/term.c
index a52e3fa..cc3c036 100644
--- a/src/term.c
+++ b/src/term.c
@@ -3256,6 +3256,8 @@
  * echoed.
  * Only do this after termcap mode has been started, otherwise the codes for
  * the cursor keys may be wrong.
+ * Only do this when 'esckeys' is on, otherwise the response causes trouble in
+ * Insert mode.
  * On Unix only do it when both output and input are a tty (avoid writing
  * request to terminal while reading from a file).
  * The result is caught in check_termcode().
@@ -3266,6 +3268,7 @@
     if (crv_status == CRV_GET
 	    && cur_tmode == TMODE_RAW
 	    && termcap_active
+	    && p_ek
 #ifdef UNIX
 	    && isatty(1)
 	    && isatty(read_cmd_fd)
diff --git a/src/testdir/test60.in b/src/testdir/test60.in
index 4435343..9899a94 100644
--- a/src/testdir/test60.in
+++ b/src/testdir/test60.in
@@ -47,6 +47,40 @@
     " Non-existing autocmd event
     let test_cases += [['##MySpecialCmd', 0]]
 
+    " Existing and working option (long form)
+    let test_cases += [['&textwidth', 1]]
+    " Existing and working option (short form)
+    let test_cases += [['&tw', 1]]
+    " Negative form of existing and working option (long form)
+    let test_cases += [['&nojoinspaces', 0]]
+    " Negative form of existing and working option (short form)
+    let test_cases += [['&nojs', 0]]
+    " Non-existing option
+    let test_cases += [['&myxyzoption', 0]]
+
+    " Existing and working option (long form)
+    let test_cases += [['+incsearch', 1]]
+    " Existing and working option (short form)
+    let test_cases += [['+is', 1]]
+    " Existing option that is hidden.
+    let test_cases += [['+autoprint', 0]]
+
+    " Existing environment variable
+    let $EDITOR_NAME = 'Vim Editor'
+    let test_cases += [['$EDITOR_NAME', 1]]
+    " Non-existing environment variable
+    let test_cases += [['$NON_ENV_VAR', 0]]
+
+    " Valid internal function
+    let test_cases += [['*bufnr', 1]]
+    " Non-existing internal function
+    let test_cases += [['*myxyzfunc', 0]]
+
+    " Valid user defined function
+    let test_cases += [['*TestExists', 1]]
+    " Non-existing user defined function
+    let test_cases += [['*MyxyzFunc', 0]]
+
     redir! > test.out
 
     for [test_case, result] in test_cases
@@ -54,6 +88,189 @@
         call RunTest(test_case, result)
     endfor
 
+    " Valid internal command (full match)
+    echo ':edit: 2'
+    if exists(':edit') == 2
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Valid internal command (partial match)
+    echo ':q: 1'
+    if exists(':q') == 1
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Non-existing internal command
+    echo ':invalidcmd: 0'
+    if !exists(':invalidcmd')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " User defined command (full match)
+    command! MyCmd :echo 'My command'
+    echo ':MyCmd: 2'
+    if exists(':MyCmd') == 2
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " User defined command (partial match)
+    command! MyOtherCmd :echo 'Another command'
+    echo ':My: 3'
+    if exists(':My') == 3
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Command modifier
+    echo ':rightbelow: 2'
+    if exists(':rightbelow') == 2
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Non-existing user defined command (full match)
+    delcommand MyCmd
+
+    echo ':MyCmd: 0'
+    if !exists(':MyCmd')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Non-existing user defined command (partial match)
+    delcommand MyOtherCmd
+
+    echo ':My: 0'
+    if !exists(':My')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Valid local variable
+    let local_var = 1
+    echo 'local_var: 1'
+    if exists('local_var')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Non-existing local variable
+    unlet local_var
+    echo 'local_var: 0'
+    if !exists('local_var')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Valid local list
+    let local_list = ["blue", "orange"]
+    echo 'local_list: 1'
+    if exists('local_list')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Non-existing local list
+    unlet local_list
+    echo 'local_list: 0'
+    if !exists('local_list')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Valid local dictionary
+    let local_dict = {"xcord":100, "ycord":2}
+    echo 'local_dict: 1'
+    if exists('local_dict')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Non-existing local dictionary
+    unlet local_dict
+    echo 'local_dict: 0'
+    if !exists('local_dict')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Existing global variable
+    let g:global_var = 1
+    echo 'g:global_var: 1'
+    if exists('g:global_var')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Non-existing global variable
+    unlet g:global_var
+    echo 'g:global_var: 0'
+    if !exists('g:global_var')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Existing local curly-brace variable
+    let curly_local_var = 1
+    let str = "local"
+    echo 'curly_{str}_var: 1'
+    if exists('curly_{str}_var')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Non-existing local curly-brace variable
+    unlet curly_local_var
+    echo 'curly_{str}_var: 0'
+    if !exists('curly_{str}_var')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Existing global curly-brace variable
+    let g:curly_global_var = 1
+    let str = "global"
+    echo 'g:curly_{str}_var: 1'
+    if exists('g:curly_{str}_var')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Non-existing global curly-brace variable
+    unlet g:curly_global_var
+    echo 'g:curly_{str}_var: 0'
+    if !exists('g:curly_{str}_var')
+	echo "OK"
+    else
+	echo "FAILED"
+    endif
+
+    " Script-local tests
+    source test60.vim
+
     redir END
 endfunction
 :call TestExists()
diff --git a/src/testdir/test60.ok b/src/testdir/test60.ok
index 0d1e3dc..fe6c4b7 100644
--- a/src/testdir/test60.ok
+++ b/src/testdir/test60.ok
@@ -29,3 +29,83 @@
 OK
 ##MySpecialCmd: 0
 OK
+&textwidth: 1
+OK
+&tw: 1
+OK
+&nojoinspaces: 0
+OK
+&nojs: 0
+OK
+&myxyzoption: 0
+OK
++incsearch: 1
+OK
++is: 1
+OK
++autoprint: 0
+OK
+$EDITOR_NAME: 1
+OK
+$NON_ENV_VAR: 0
+OK
+*bufnr: 1
+OK
+*myxyzfunc: 0
+OK
+*TestExists: 1
+OK
+*MyxyzFunc: 0
+OK
+:edit: 2
+OK
+:q: 1
+OK
+:invalidcmd: 0
+OK
+:MyCmd: 2
+OK
+:My: 3
+OK
+:rightbelow: 2
+OK
+:MyCmd: 0
+OK
+:My: 0
+OK
+local_var: 1
+OK
+local_var: 0
+OK
+local_list: 1
+OK
+local_list: 0
+OK
+local_dict: 1
+OK
+local_dict: 0
+OK
+g:global_var: 1
+OK
+g:global_var: 0
+OK
+curly_{str}_var: 1
+OK
+curly_{str}_var: 0
+OK
+g:curly_{str}_var: 1
+OK
+g:curly_{str}_var: 0
+OK
+s:script_var: 1
+OK
+s:script_var: 0
+OK
+s:curly_{str}_var: 1
+OK
+s:curly_{str}_var: 0
+OK
+*s:my_script_func: 1
+OK
+*s:my_script_func: 0
+OK
diff --git a/src/ui.c b/src/ui.c
index c48af4e..ba5911f 100644
--- a/src/ui.c
+++ b/src/ui.c
@@ -469,9 +469,9 @@
 #ifdef FEAT_X11
 	if (cbd == &clip_star)
 	{
-	    /* May have to show a different kind of highlighting for the selected
-	     * area.  There is no specific redraw command for this, just redraw
-	     * all windows on the current buffer. */
+	    /* May have to show a different kind of highlighting for the
+	     * selected area.  There is no specific redraw command for this,
+	     * just redraw all windows on the current buffer. */
 	    if (cbd->owned
 		    && get_real_state() == VISUAL
 		    && clip_isautosel()
@@ -2130,6 +2130,10 @@
 	{
 	    if (XCheckTypedEvent(dpy, SelectionNotify, &event))
 		break;
+	    if (XCheckTypedEvent(dpy, SelectionRequest, &event))
+		/* We may get a SelectionRequest here and if we don't handle
+		 * it we hang.  KDE klipper does this, for example. */
+		XtDispatchEvent(&event);
 
 	    /* Do we need this?  Probably not. */
 	    XSync(dpy, False);
diff --git a/src/version.h b/src/version.h
index 1402a48..3e0e393 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 23)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 23, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 28)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 28, compiled "
