diff --git a/runtime/doc/editing.txt b/runtime/doc/editing.txt
index 8ae870a..c8b6941 100644
--- a/runtime/doc/editing.txt
+++ b/runtime/doc/editing.txt
@@ -1,4 +1,4 @@
-*editing.txt*   For Vim version 7.0aa.  Last change: 2005 Apr 04
+*editing.txt*   For Vim version 7.0aa.  Last change: 2005 Apr 27
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -54,12 +54,12 @@
 
 
 CTRL-G		or				*CTRL-G* *:f* *:fi* *:file*
-:f[ile]			Prints the current file name (as typed), the
-			cursor position (unless the 'ruler' option is set),
-			and the file status (readonly, modified, read errors,
-			new file).  See the 'shortmess' option about how to
-			make this message shorter.  {Vi does not include
-			column number}
+:f[ile]			Prints the current file name (as typed, unless ":cd"
+			was used), the cursor position (unless the 'ruler'
+			option is set), and the file status (readonly,
+			modified, read errors, new file).  See the 'shortmess'
+			option about how to make this message shorter.
+			{Vi does not include column number}
 
 :f[ile]!		like |:file|, but don't truncate the name even when
 			'shortmess' indicates this.
diff --git a/runtime/syntax/crontab.vim b/runtime/syntax/crontab.vim
index b7b8ef6..372478c 100644
--- a/runtime/syntax/crontab.vim
+++ b/runtime/syntax/crontab.vim
@@ -1,9 +1,10 @@
 " Vim syntax file
-" Language:	crontab 2.3.3
+" Language:	crontab
 " Maintainer:	John Hoelzel johnh51@users.sourceforge.net
-" Last change:	Mon Jun  9 2003
-" Filenames:    /tmp/crontab.* used by "crontab -e"
-" URL:		http://johnh51.get.to/vim/syntax/crontab.vim
+" Maintainer:	David Necas (Yeti) <yeti@physics.muni.cz>
+" Last Change:	2005-04-26
+" Filenames:	/tmp/crontab.* used by "crontab -e"
+" URL:		http://trific.ath.cx/Ftp/vim/syntax/crontab.vim
 "
 " crontab line format:
 " Minutes   Hours   Days   Months   Days_of_Week   Commands # comments
@@ -16,20 +17,24 @@
   finish
 endif
 
-syntax match  crontabMin     "\_^[0-9\-\/\,\.]\{}\>\|\*"  nextgroup=crontabHr   skipwhite
-syntax match  crontabHr       "\<[0-9\-\/\,\.]\{}\>\|\*"  nextgroup=crontabDay  skipwhite contained
-syntax match  crontabDay      "\<[0-9\-\/\,\.]\{}\>\|\*"  nextgroup=crontabMnth skipwhite contained
+syntax match  crontabMin     "^\s*[-0-9/,.*]\+"  nextgroup=crontabHr   skipwhite
+syntax match  crontabHr       "\s[-0-9/,.*]\+"  nextgroup=crontabDay  skipwhite contained
+syntax match  crontabDay      "\s[-0-9/,.*]\+"  nextgroup=crontabMnth skipwhite contained
 
-syntax match  crontabMnth  "\<[a-z0-9\-\/\,\.]\{}\>\|\*"  nextgroup=crontabDow  skipwhite contained
+syntax match  crontabMnth  "\s[-a-z0-9/,.*]\+"  nextgroup=crontabDow  skipwhite contained
 syntax keyword crontabMnth12 contained   jan feb mar apr may jun jul aug sep oct nov dec
 
-syntax match  crontabDow   "\<[a-z0-9\-\/\,\.]\{}\>\|\*"  nextgroup=crontabCmd  skipwhite contained
+syntax match  crontabDow   "\s[-a-z0-9/,.*]\+"  nextgroup=crontabCmd  skipwhite contained
 syntax keyword crontabDow7   contained    sun mon tue wed thu fri sat
 
 "  syntax region crontabCmd  start="\<[a-z0-9\/\(]" end="$" nextgroup=crontabCmnt skipwhite contained contains=crontabCmnt keepend
 
-syntax region crontabCmd  start="\S" end="$" nextgroup=crontabCmnt skipwhite contained contains=crontabCmnt keepend
-syntax match  crontabCmnt /#.*/
+syntax region crontabCmd  start="\S" end="$" nextgroup=crontabCmnt skipwhite contained keepend
+syntax match  crontabCmnt "^\s*#.*"
+
+syntax match  crontabNick  "^\s*@\(reboot\|yearly\|annually\|monthly\|weekly\|daily\|midnight\|hourly\)\>" nextgroup=crontabCmd skipwhite
+
+syntax match  crontabVar  "^\s*\k\w*\s*="me=e-1
 
 " Define the default highlighting.
 " For version 5.7 and earlier: only when not done already
@@ -56,6 +61,9 @@
   HiLink crontabDowS		PreProc
   HiLink crontabDowN		PreProc
 
+  HiLink crontabNick		Special
+  HiLink crontabVar		Identifier
+
 " comment out next line for to suppress unix commands coloring.
   HiLink crontabCmd		Type
 
diff --git a/src/Make_mvc.mak b/src/Make_mvc.mak
index de68e19..4d4ea22 100644
--- a/src/Make_mvc.mak
+++ b/src/Make_mvc.mak
@@ -296,8 +296,6 @@
 !endif
 CFLAGS = $(CFLAGS) $(OPTFLAG) -DNDEBUG $(CPUARG)
 RCFLAGS = $(rcflags) $(rcvars) -DNDEBUG
-PDB =
-LINK_PDB =
 ! ifdef USE_MSVCRT
 CFLAGS = $(CFLAGS) -MD
 LIBC = msvcrt.lib
@@ -308,13 +306,7 @@
 ! endif
 !else  # DEBUG
 VIM = vimd
-# MSVC 4.1
-PDB = /Fd$(OUTDIR)/
-LINK_PDB = /PDB:$(OUTDIR)/
-# MSVC 2.2
-# PDB = /Fd$(OUTDIR)/vim.pdb
-# LINK_PDB = /PDB:$(OUTDIR)/vim.pdb
-CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Zi /Od
+CFLAGS = $(CFLAGS) -D_DEBUG -DDEBUG /Od
 RCFLAGS = $(rcflags) $(rcvars) -D_DEBUG -DDEBUG
 # The /fixed:no is needed for Quantify. Assume not 4.? as unsupported in VC4.0.
 ! if "$(_NMAKE_VER)" == ""
@@ -620,7 +612,15 @@
 CFLAGS = $(CFLAGS) -DFEAT_$(FEATURES)
 
 #
-# End extra featuare include
+# Always generate the .pdb file, so that we get debug symbols that can be used
+# on a crash (doesn't add overhead to the executable).
+#
+CFLAGS = $(CFLAGS) /Zi
+PDB = /Fd$(OUTDIR)/
+LINK_PDB = /PDB:$(OUTDIR)/$(VIM).pdb -debug:full -debugtype:cv,fixup
+
+#
+# End extra feature include
 #
 !message
 
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index 76fafef..38a7d44 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -7815,8 +7815,8 @@
 		    || *arg == '"')
 	    {
 		redir_reg = *arg++;
-		if (*arg == '>')
-		    ++arg;
+		if (*arg == '>' && arg[1] == '>')
+		    arg += 2;
 		else if (*arg == NUL && (islower(redir_reg)
 # ifdef FEAT_CLIPBOARD
 			    || redir_reg == '*'
@@ -7829,8 +7829,8 @@
 	    }
 	    if (*arg != NUL)
 	    {
-		EMSG2(_(e_invarg2), eap->arg);
 		redir_reg = 0;
+		EMSG2(_(e_invarg2), eap->arg);
 	    }
 	}
 	else if (*arg == '=' && arg[1] == '>')
diff --git a/src/normal.c b/src/normal.c
index e5404ef..ec38db2 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -3929,13 +3929,17 @@
     int		save_p_scs;
     char_u	*ptr;
 
-    if ((len = find_ident_under_cursor(&ptr, FIND_IDENT)) == 0 ||
-					       (pat = alloc(len + 5)) == NULL)
+    if ((len = find_ident_under_cursor(&ptr, FIND_IDENT)) == 0
+	    || (pat = alloc(len + 7)) == NULL)
     {
 	clearopbeep(oap);
 	return;
     }
-    sprintf((char *)pat, vim_iswordp(ptr) ? "\\<%.*s\\>" : "%.*s", len, ptr);
+
+    /* Put "\V" before the pattern to avoid that the special meaning of "."
+     * and "~" causes trouble. */
+    sprintf((char *)pat, vim_iswordp(ptr) ? "\\V\\<%.*s\\>" : "\\V%.*s",
+								    len, ptr);
     old_pos = curwin->w_cursor;
     save_p_ws = p_ws;
     save_p_scs = p_scs;
diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak
index 235e147..3f63cec 100644
--- a/src/testdir/Make_os2.mak
+++ b/src/testdir/Make_os2.mak
@@ -23,7 +23,8 @@
 		test33.out test34.out test35.out test36.out test37.out \
 		test38.out test39.out test40.out test41.out test42.out \
 		test43.out test44.out test45.out test46.out test47.out \
-		test48.out test51.out test53.out test54.out test55.out
+		test48.out test51.out test53.out test54.out test55.out \
+		test56.out
 
 .SUFFIXES: .in .out
 
diff --git a/src/vim.h b/src/vim.h
index fde8ac1..ab2bb42 100644
--- a/src/vim.h
+++ b/src/vim.h
@@ -1227,7 +1227,15 @@
 #define LSIZE	    512		/* max. size of a line in the tags file */
 
 #define IOSIZE	   (1024+1)	/* file i/o and sprintf buffer size */
-#define MSG_BUF_LEN 80		/* length of buffer for small messages */
+
+#ifdef FEAT_MBYTE
+# define MSG_BUF_LEN 480	/* length of buffer for small messages */
+# define MSG_BUF_CLEN  (MSG_BUF_LEN / 6)    /* cell length (worst case: utf-8
+					       takes 6 bytes for one cell) */
+#else
+# define MSG_BUF_LEN 80		/* length of buffer for small messages */
+# define MSG_BUF_CLEN  MSG_BUF_LEN	    /* cell length */
+#endif
 
 #if defined(AMIGA) || defined(__linux__) || defined(__QNX__) || defined(__CYGWIN32__) || defined(_AIX)
 # define TBUFSZ 2048		/* buffer size for termcap entry */
