diff --git a/src/map.c b/src/map.c
index 6ea73eb..762cce2 100644
--- a/src/map.c
+++ b/src/map.c
@@ -189,17 +189,7 @@
     if (*mp->m_str == NUL)
 	msg_puts_attr("<Nop>", HL_ATTR(HLF_8));
     else
-    {
-	// Remove escaping of CSI, because "m_str" is in a format to be used
-	// as typeahead.
-	char_u *s = vim_strsave(mp->m_str);
-	if (s != NULL)
-	{
-	    vim_unescape_csi(s);
-	    msg_outtrans_special(s, FALSE, 0);
-	    vim_free(s);
-	}
-    }
+	msg_outtrans_special(mp->m_str, FALSE, 0);
 #ifdef FEAT_EVAL
     if (p_verbose > 0)
 	last_set_msg(mp->m_script_ctx);
diff --git a/src/message.c b/src/message.c
index 2499723..b5b00f3 100644
--- a/src/message.c
+++ b/src/message.c
@@ -1800,19 +1800,29 @@
 
     if (has_mbyte && !IS_SPECIAL(c))
     {
-	int len = (*mb_ptr2len)(str);
+	char_u	*p;
 
-	// For multi-byte characters check for an illegal byte.
-	if (MB_BYTE2LEN(*str) > len)
+	*sp = str;
+	// Try to un-escape a multi-byte character after modifiers.
+	p = mb_unescape(sp);
+
+	if (p == NULL)
 	{
-	    transchar_nonprint(curbuf, buf, c);
-	    *sp = str + 1;
-	    return buf;
+	    int len = (*mb_ptr2len)(str);
+
+	    // Check for an illegal byte.
+	    if (MB_BYTE2LEN(*str) > len)
+	    {
+		transchar_nonprint(curbuf, buf, c);
+		*sp = str + 1;
+		return buf;
+	    }
+	    *sp = str + len;
+	    p = str;
 	}
 	// Since 'special' is TRUE the multi-byte character 'c' will be
 	// processed by get_special_key_name()
-	c = (*mb_ptr2char)(str);
-	*sp = str + len;
+	c = (*mb_ptr2char)(p);
     }
     else
 	*sp = str + 1;
diff --git a/src/testdir/test_mapping.vim b/src/testdir/test_mapping.vim
index 7f768cf..e886424 100644
--- a/src/testdir/test_mapping.vim
+++ b/src/testdir/test_mapping.vim
@@ -482,6 +482,26 @@
   call assert_match("\tLast set from .*/test_mapping.vim line \\d\\+$",
         \ execute('verbose map ,n')->trim()->split("\n")[1])
 
+  " character with K_SPECIAL byte in rhs
+  nmap foo …
+  call assert_equal(['n  foo           …'],
+        \ execute('nmap foo')->trim()->split("\n"))
+
+  " modified character with K_SPECIAL byte in rhs
+  nmap foo <M-…>
+  call assert_equal(['n  foo           <M-…>'],
+        \ execute('nmap foo')->trim()->split("\n"))
+
+  " character with K_SPECIAL byte in lhs
+  nmap … foo
+  call assert_equal(['n  …             foo'],
+        \ execute('nmap …')->trim()->split("\n"))
+
+  " modified character with K_SPECIAL byte in lhs
+  nmap <M-…> foo
+  call assert_equal(['n  <M-…>         foo'],
+        \ execute('nmap <M-…>')->trim()->split("\n"))
+
   " map to CTRL-V
   exe "nmap ,k \<C-V>"
   call assert_equal(['n  ,k            <Nop>'],
diff --git a/src/version.c b/src/version.c
index 17bcfd1..d04a226 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4867,
+/**/
     4866,
 /**/
     4865,
