diff --git a/runtime/doc/todo.txt b/runtime/doc/todo.txt
index 8aa8299..5de02e6 100644
--- a/runtime/doc/todo.txt
+++ b/runtime/doc/todo.txt
@@ -1,4 +1,4 @@
-*todo.txt*      For Vim version 7.0aa.  Last change: 2006 Jan 13
+*todo.txt*      For Vim version 7.0aa.  Last change: 2006 Jan 14
 
 
 		  VIM REFERENCE MANUAL	  by Bram Moolenaar
@@ -30,6 +30,9 @@
 							*known-bugs*
 -------------------- Known bugs and current work -----------------------
 
+When the file "" exists, then ":!ls aap<Tab>" should put backslashes before
+'&', ';', '<' and '>'.
+
 Evaluating CTRL-R = in the sandbox causes trouble (G. Sumner Hayes).  Can the
 rules for the commandline window be used?
 
@@ -67,7 +70,6 @@
     Can't reproduce it right now...
 
 spelling:
-- NL woordenlijst naar Adri sturen.
 - Include script to cleanup a .add file. (Antonio Colombo, Jan 9)
 - suggestions for "macARONI" doesn't include "macaroni", they are all allcap.
   suggestion for "KG" to "kg" when it's keepcase.
diff --git a/runtime/doc/version7.txt b/runtime/doc/version7.txt
index 36345b4..00830d9 100644
--- a/runtime/doc/version7.txt
+++ b/runtime/doc/version7.txt
@@ -1,4 +1,4 @@
-*version7.txt*  For Vim version 7.0aa.  Last change: 2006 Jan 13
+*version7.txt*  For Vim version 7.0aa.  Last change: 2006 Jan 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1558,4 +1558,12 @@
 stopped at the region end match, making the region continue after that.
 Now check for the column being past the end of the line in syn_add_end_off().
 
+When changing a file, setting 'swapfile' off and then on again, making another
+change and killing Vim, then some blocks may be missing from the swapfile.
+When 'swapfile' is switched back on mark all blocks in the swapfile as dirty.
+Added mf_set_dirty().
+
+Expanding wildcards in a command like ":e aap;<>!" didn't work.  Put
+backslashes before characters that are special to the shell. (Adri Verhoef)
+
  vim:tw=78:ts=8:ft=help:norl:
diff --git a/src/eval.c b/src/eval.c
index 4823593..c18b42d 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -17667,7 +17667,18 @@
     }
 
     if (lv.ll_exp_name != NULL)
+    {
 	len = STRLEN(lv.ll_exp_name);
+	if (lead <= 2 && lv.ll_name == lv.ll_exp_name
+					 && STRNCMP(lv.ll_name, "s:", 2) == 0)
+	{
+	    /* When there was "s:" already or the name expanded to get a
+	     * leading "s:" then remove it. */
+	    lv.ll_name += 2;
+	    len -= 2;
+	    lead = 2;
+	}
+    }
     else
     {
 	if (lead == 2)	/* skip over "s:" */
diff --git a/src/memfile.c b/src/memfile.c
index e1a6b60..bac84fe 100644
--- a/src/memfile.c
+++ b/src/memfile.c
@@ -701,6 +701,23 @@
 }
 
 /*
+ * For all blocks in memory file *mfp that have a positive block number set
+ * the dirty flag.  These are blocks that need to be written to a newly
+ * created swapfile.
+ */
+    void
+mf_set_dirty(mfp)
+    memfile_T	*mfp;
+{
+    bhdr_T	*hp;
+
+    for (hp = mfp->mf_used_last; hp != NULL; hp = hp->bh_prev)
+	if (hp->bh_bnum > 0)
+	    hp->bh_flags |= BH_DIRTY;
+    mfp->mf_dirty = TRUE;
+}
+
+/*
  * insert block *hp in front of hashlist of memfile *mfp
  */
     static void
diff --git a/src/memline.c b/src/memline.c
index 9abf155..c87a955 100644
--- a/src/memline.c
+++ b/src/memline.c
@@ -563,7 +563,13 @@
 
 	    /* Flush block zero, so others can read it */
 	    if (mf_sync(mfp, MFS_ZERO) == OK)
+	    {
+		/* Mark all blocks that should be in the swapfile as dirty.
+		 * Needed for when the 'swapfile' option was reset, so that
+		 * the swap file was deleted, and then on again. */
+		mf_set_dirty(mfp);
 		break;
+	    }
 	    /* Writing block 0 failed: close the file and try another dir */
 	    mf_close_file(buf, FALSE);
 	}
