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 */
