diff --git a/src/mbyte.c b/src/mbyte.c
index 2278de6..33c0fdf 100644
--- a/src/mbyte.c
+++ b/src/mbyte.c
@@ -2408,6 +2408,21 @@
 }
 
 /*
+ * Copy a character from "*fp" to "*tp" and advance the pointers.
+ */
+    void
+mb_copy_char(fp, tp)
+    char_u	**fp;
+    char_u	**tp;
+{
+    int	    l = (*mb_ptr2len_check)(*fp);
+
+    mch_memmove(*tp, *fp, (size_t)l);
+    *tp += l;
+    *fp += l;
+}
+
+/*
  * Return the offset from "p" to the first byte of a character.  When "p" is
  * at the start of a character 0 is returned, otherwise the offset to the next
  * character.  Can start anywhere in a stream of bytes.
diff --git a/src/os_unix.c b/src/os_unix.c
index 5e1b154..6186d92 100644
--- a/src/os_unix.c
+++ b/src/os_unix.c
@@ -4724,7 +4724,7 @@
 	else
 	    buf = vim_strsave(*pat);
 	expl_files = NULL;
-	has_wildcard = mch_has_exp_wildcard(buf);  /* (still) wildcards in there? */
+	has_wildcard = mch_has_exp_wildcard(buf);  /* (still) wildcards? */
 	if (has_wildcard)   /* yes, so expand them */
 	    expl_files = (char_u **)_fnexplode(buf);
 
@@ -5226,12 +5226,20 @@
     char_u	***file;
 {
     int		i;
+    char_u	*s;
 
     *file = (char_u **)alloc(num_pat * sizeof(char_u *));
     if (*file == NULL)
 	return FAIL;
     for (i = 0; i < num_pat; i++)
-	(*file)[i] = vim_strsave(pat[i]);
+    {
+	s = vim_strsave(pat[i]);
+	if (s != NULL)
+	    /* Be compatible with expand_filename(): halve the number of
+	     * backslashes. */
+	    backslash_halve(s);
+	(*file)[i] = s;
+    }
     *num_file = num_pat;
     return OK;
 }
diff --git a/src/proto/mbyte.pro b/src/proto/mbyte.pro
index 88f14f4..11b6443 100644
--- a/src/proto/mbyte.pro
+++ b/src/proto/mbyte.pro
@@ -45,6 +45,7 @@
 int dbcs_head_off __ARGS((char_u *base, char_u *p));
 int dbcs_screen_head_off __ARGS((char_u *base, char_u *p));
 int utf_head_off __ARGS((char_u *base, char_u *p));
+void mb_copy_char __ARGS((char_u **fp, char_u **tp));
 int mb_off_next __ARGS((char_u *base, char_u *p));
 int mb_tail_off __ARGS((char_u *base, char_u *p));
 int utf_valid_string __ARGS((char_u *s, char_u *end));
diff --git a/src/version.h b/src/version.h
index 033ea70..c9a246d 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 (2004 Jan 11)"
-#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2004 Jan 11, compiled "
+#define VIM_VERSION_LONG	"VIM - Vi IMproved 7.0aa ALPHA (2004 Jan 14)"
+#define VIM_VERSION_LONG_DATE	"VIM - Vi IMproved 7.0aa ALPHA (2004 Jan 14, compiled "
