updated for version 7.0g02
diff --git a/src/main.c b/src/main.c
index 276547b..2a90cc3 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3606,11 +3606,11 @@
      *    B set - backslashes are *not* treated specially
      *    k set - keycodes are *not* reverse-engineered
      *    < unset - <Key> sequences *are* interpreted
-     *  The last parameter of replace_termcodes() is TRUE so that the <lt>
-     *  sequence is recognised - needed for a real backslash.
+     *  The last but one parameter of replace_termcodes() is TRUE so that the
+     *  <lt> sequence is recognised - needed for a real backslash.
      */
     p_cpo = (char_u *)"Bk";
-    str = replace_termcodes((char_u *)str, &ptr, FALSE, TRUE);
+    str = replace_termcodes((char_u *)str, &ptr, FALSE, TRUE, FALSE);
     p_cpo = cpo_save;
 
     if (*ptr != NUL)	/* trailing CTRL-V results in nothing */
diff --git a/src/menu.c b/src/menu.c
index dac4754..96a535f 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -91,6 +91,7 @@
     char_u	*map_to;
     int		noremap;
     int		silent = FALSE;
+    int		special = FALSE;
     int		unmenu;
     char_u	*map_buf;
     char_u	*arg;
@@ -131,6 +132,12 @@
 	    arg = skipwhite(arg + 8);
 	    continue;
 	}
+	if (STRNCMP(arg, "<special>", 9) == 0)
+	{
+	    special = TRUE;
+	    arg = skipwhite(arg + 9);
+	    continue;
+	}
 	break;
     }
 
@@ -390,7 +397,7 @@
 	else if (modes & MENU_TIP_MODE)
 	    map_buf = NULL;	/* Menu tips are plain text. */
 	else
-	    map_to = replace_termcodes(map_to, &map_buf, FALSE, TRUE);
+	    map_to = replace_termcodes(map_to, &map_buf, FALSE, TRUE, special);
 	menuarg.modes = modes;
 #ifdef FEAT_TOOLBAR
 	menuarg.iconfile = icon;