diff --git a/src/misc2.c b/src/misc2.c
index dbcd653..4c05a8c 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -2781,6 +2781,12 @@
 	}
 	if (bp[0] == 't' && bp[1] == '_' && bp[2] && bp[3])
 	    bp += 3;	/* skip t_xx, xx may be '-' or '>' */
+	else if (STRNICMP(bp, "char-", 5) == 0)
+	{
+	    vim_str2nr(bp + 5, NULL, &l, TRUE, TRUE, NULL, NULL);
+	    bp += l + 5;
+	    break;
+	}
     }
 
     if (*bp == '>')	/* found matching '>' */
@@ -2810,27 +2816,27 @@
 	    {
 		/* <Char-123> or <Char-033> or <Char-0x33> */
 		vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n);
-		*modp = modifiers;
-		*srcp = end_of_name;
-		return (int)n;
+		key = (int)n;
 	    }
-
-	    /*
-	     * Modifier with single letter, or special key name.
-	     */
-#ifdef FEAT_MBYTE
-	    if (has_mbyte)
-		l = mb_ptr2len(last_dash + 1);
-	    else
-#endif
-		l = 1;
-	    if (modifiers != 0 && last_dash[l + 1] == '>')
-		key = PTR2CHAR(last_dash + 1);
 	    else
 	    {
-		key = get_special_key_code(last_dash + 1);
-		if (!keep_x_key)
-		    key = handle_x_keys(key);
+		/*
+		 * Modifier with single letter, or special key name.
+		 */
+#ifdef FEAT_MBYTE
+		if (has_mbyte)
+		    l = mb_ptr2len(last_dash + 1);
+		else
+#endif
+		    l = 1;
+		if (modifiers != 0 && last_dash[l + 1] == '>')
+		    key = PTR2CHAR(last_dash + 1);
+		else
+		{
+		    key = get_special_key_code(last_dash + 1);
+		    if (!keep_x_key)
+			key = handle_x_keys(key);
+		}
 	    }
 
 	    /*
diff --git a/src/testdir/test75.in b/src/testdir/test75.in
index 2de7a08..5369d8a 100644
--- a/src/testdir/test75.in
+++ b/src/testdir/test75.in
@@ -2,6 +2,7 @@
 
 STARTTEST
 :so small.vim
+:set cpo-=<
 :" Test maparg() with a string result
 :map foo<C-V> is<F4>foo
 :vnoremap <script> <buffer> <expr> <silent> bar isbar
@@ -9,6 +10,11 @@
 :call append('$', string(maparg('foo<C-V>', '', 0, 1)))
 :call append('$', string(maparg('bar', '', 0, 1)))
 :"
+:map abc x<char-114>x
+:call append('$', maparg('abc'))
+:map abc y<S-char-114>y
+:call append('$', maparg('abc'))
+:"
 :/^eof/+1,$w! test.out
 :qa!
 ENDTEST
diff --git a/src/testdir/test75.ok b/src/testdir/test75.ok
index 7916563..af9c96d 100644
--- a/src/testdir/test75.ok
+++ b/src/testdir/test75.ok
@@ -1,3 +1,5 @@
 is<F4>foo
 {'silent': 0, 'noremap': 0, 'lhs': 'foo<C-V>', 'mode': ' ', 'expr': 0, 'sid': 0, 'rhs': 'is<F4>foo', 'buffer': 0}
 {'silent': 1, 'noremap': 1, 'lhs': 'bar', 'mode': 'v', 'expr': 1, 'sid': 0, 'rhs': 'isbar', 'buffer': 1}
+xrx
+yRy
diff --git a/src/version.c b/src/version.c
index 650e99f..da8d97e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -710,6 +710,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    285,
+/**/
     284,
 /**/
     283,
