diff --git a/src/auto/configure b/src/auto/configure
index 794fd8f..8c42e66 100755
--- a/src/auto/configure
+++ b/src/auto/configure
@@ -1009,7 +1009,7 @@
 _ACEOF
   exit 0
 fi
-exec 5>auto/config.log
+exec 5>config.log
 cat >&5 <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
@@ -15455,7 +15455,7 @@
 # Open the log real soon, to keep \$[0] and so on meaningful, and to
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.  Logging --version etc. is OK.
-exec 5>>auto/config.log
+exec 5>>config.log
 {
   echo
   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
@@ -16285,7 +16285,7 @@
     ac_config_status_args="$ac_config_status_args --quiet"
   exec 5>/dev/null
   $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>auto/config.log
+  exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
   $ac_cs_success || { (exit 1); exit 1; }
diff --git a/src/edit.c b/src/edit.c
index 0a770a7..ff09f09 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -208,6 +208,7 @@
 					   K_SPECIAL and CSI are escaped */
 static int	last_insert_skip; /* nr of chars in front of previous insert */
 static int	new_insert_skip;  /* nr of chars in front of current insert */
+static int	did_restart_edit;	/* "restart_edit" when calling edit() */
 
 #ifdef FEAT_CINDENT
 static int	can_cindent;		/* may do cindenting on this line */
@@ -269,9 +270,11 @@
 #endif
     int		inserted_space = FALSE;     /* just inserted a space */
     int		replaceState = REPLACE;
-    int		did_restart_edit = restart_edit;
     int		nomove = FALSE;		    /* don't move cursor on return */
 
+    /* Remember whether editing was restarted after CTRL-O. */
+    did_restart_edit = restart_edit;
+
     /* sleep before redrawing, needed for "CTRL-O :" that results in an
      * error message */
     check_for_delay(TRUE);
@@ -496,10 +499,10 @@
     do_digraph(-1);		/* clear digraphs */
 #endif
 
-/*
- * Get the current length of the redo buffer, those characters have to be
- * skipped if we want to get to the inserted characters.
- */
+    /*
+     * Get the current length of the redo buffer, those characters have to be
+     * skipped if we want to get to the inserted characters.
+     */
     ptr = get_inserted();
     if (ptr == NULL)
 	new_insert_skip = 0;
@@ -5030,20 +5033,29 @@
  */
     static void
 stop_insert(end_insert_pos, esc)
-    pos_T    *end_insert_pos;	/* where insert ended */
-    int	    esc;		/* called by ins_esc() */
+    pos_T	*end_insert_pos;	/* where insert ended */
+    int		esc;			/* called by ins_esc() */
 {
-    int	    cc;
+    int		cc;
+    char_u	*ptr;
 
     stop_redo_ins();
     replace_flush();		/* abandon replace stack */
 
     /*
-     * save the inserted text for later redo with ^@
+     * Save the inserted text for later redo with ^@ and CTRL-A.
+     * Don't do it when "restart_edit" was set and nothing was inserted,
+     * otherwise CTRL-O w and then <Left> will clear "last_insert".
      */
-    vim_free(last_insert);
-    last_insert = get_inserted();
-    last_insert_skip = new_insert_skip;
+    ptr = get_inserted();
+    if (did_restart_edit == 0 || (ptr != NULL && STRLEN(ptr) > new_insert_skip))
+    {
+	vim_free(last_insert);
+	last_insert = ptr;
+	last_insert_skip = new_insert_skip;
+    }
+    else
+	vim_free(ptr);
 
     if (!arrow_used)
     {
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 7c9ea14..a55b497 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1098,6 +1098,15 @@
 			save_cmdline(&save_ccline);
 			c = get_expr_register();
 			restore_cmdline(&save_ccline);
+
+			/* When there was a serious error abort getting the
+			 * command line. */
+			if (aborting())
+			{
+			    gotesc = TRUE;  /* will free ccline.cmdbuff after
+					       putting it in history */
+			    goto returncmd; /* back to cmd mode */
+			}
 		    }
 		}
 #endif
diff --git a/src/globals.h b/src/globals.h
index ede48c6..8c21105 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -847,6 +847,8 @@
 EXTERN int	swap_exists_action INIT(= SEA_NONE);
 					/* For dialog when swap file already
 					 * exists. */
+EXTERN int	swap_exists_did_quit INIT(= FALSE);
+					/* Selected "quit" at the dialog. */
 #endif
 
 EXTERN char_u	*IObuff;		/* sprintf's are done in this buffer,
diff --git a/src/mysign b/src/mysign
index 1581aa7..e31d3e4 100644
--- a/src/mysign
+++ b/src/mysign
@@ -1 +1 @@
-=auto/configure-lastupdate=1090067895.52-@buildcheck=2c92a9e4676b2304fab9af16f1664194=configure.in@md5=9058353ef67f4d224686695cb80f645e
+=auto/configure-lastupdate=1134726965.61-@buildcheck=7520ec774f62645a09ebe0f9aab5aaec=configure.in@md5=98b5986099d37a7ba1b943fe7f4d0f90
diff --git a/src/ops.c b/src/ops.c
index 2f9ff00..0c75a46 100644
--- a/src/ops.c
+++ b/src/ops.c
@@ -159,7 +159,7 @@
     {'z', 'd', TRUE},	/* OP_FOLDDEL */
     {'z', 'D', TRUE},	/* OP_FOLDDELREC */
     {'g', 'w', TRUE},	/* OP_FORMAT2 */
-    {'g', 'y', FALSE},	/* OP_FUNCTION */
+    {'g', '@', FALSE},	/* OP_FUNCTION */
 };
 
 /*
diff --git a/src/version.h b/src/version.h
index 0a6a4ab..a1aed6e 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 14)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 14, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 16)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2005 Dec 16, compiled "
