diff --git a/src/map.c b/src/map.c
index 6f92685..4a9849d 100644
--- a/src/map.c
+++ b/src/map.c
@@ -2269,6 +2269,8 @@
     dict_T	*d;
     char_u	*lhs;
     char_u	*rhs;
+    char_u	*orig_rhs;
+    char_u	*arg_buf = NULL;
     int		noremap;
     int		expr;
     int		silent;
@@ -2304,6 +2306,9 @@
 	emsg(_("E99: rhs entry missing in mapset() dict argument"));
 	return;
     }
+    orig_rhs = rhs;
+    rhs = replace_termcodes(rhs, &arg_buf,
+					REPTERM_DO_LT | REPTERM_SPECIAL, NULL);
 
     noremap = dict_get_number(d, (char_u *)"noremap") ? REMAP_NONE: 0;
     if (dict_get_number(d, (char_u *)"script") != 0)
@@ -2330,9 +2335,10 @@
 
     keys = replace_termcodes(lhs, &keys_buf,
 				      REPTERM_FROM_PART | REPTERM_DO_LT, NULL);
-    (void)map_add(map_table, abbr_table, keys, rhs, rhs, noremap,
+    (void)map_add(map_table, abbr_table, keys, rhs, orig_rhs, noremap,
 	    nowait, silent, mode, is_abbr, expr, sid, lnum, simplified);
     vim_free(keys_buf);
+    vim_free(arg_buf);
 }
 #endif
 
diff --git a/src/testdir/test_maparg.vim b/src/testdir/test_maparg.vim
index 5fb8045..b971be4 100644
--- a/src/testdir/test_maparg.vim
+++ b/src/testdir/test_maparg.vim
@@ -6,7 +6,7 @@
   return str2nr(matchstr(expand('<sfile>'), '<SNR>\zs\d\+\ze_SID$'))
 endfunc
 
-funct Test_maparg()
+func Test_maparg()
   new
   set cpo-=<
   set encoding=utf8
@@ -156,6 +156,73 @@
 func Test_mapset()
   call One_mapset_test('K')
   call One_mapset_test('<F3>')
+
+  " Check <> key conversion
+  new
+  inoremap K one<Left>x
+  call feedkeys("iK\<Esc>", 'xt')
+  call assert_equal('onxe', getline(1))
+
+  let orig = maparg('K', 'i', 0, 1)
+  call assert_equal('K', orig.lhs)
+  call assert_equal('one<Left>x', orig.rhs)
+  call assert_equal('i', orig.mode)
+
+  iunmap K
+  let d = maparg('K', 'i', 0, 1)
+  call assert_equal({}, d)
+
+  call mapset('i', 0, orig)
+  call feedkeys("SK\<Esc>", 'xt')
+  call assert_equal('onxe', getline(1))
+
+  iunmap K
+
+  " Test literal <CR> using a backslash
+  let cpo_save = &cpo
+  set cpo-=B
+  inoremap K one\<CR>two
+  call feedkeys("SK\<Esc>", 'xt')
+  call assert_equal('one<CR>two', getline(1))
+
+  let orig = maparg('K', 'i', 0, 1)
+  call assert_equal('K', orig.lhs)
+  call assert_equal('one\<CR>two', orig.rhs)
+  call assert_equal('i', orig.mode)
+
+  iunmap K
+  let d = maparg('K', 'i', 0, 1)
+  call assert_equal({}, d)
+
+  call mapset('i', 0, orig)
+  call feedkeys("SK\<Esc>", 'xt')
+  call assert_equal('one<CR>two', getline(1))
+
+  iunmap K
+  let &cpo = cpo_save
+
+  " Test literal <CR> using CTRL-V
+  inoremap K one<CR>two
+  call feedkeys("SK\<Esc>", 'xt')
+  call assert_equal('one<CR>two', getline(1))
+
+  let orig = maparg('K', 'i', 0, 1)
+  call assert_equal('K', orig.lhs)
+  call assert_equal("one\x16<CR>two", orig.rhs)
+  call assert_equal('i', orig.mode)
+
+  iunmap K
+  let d = maparg('K', 'i', 0, 1)
+  call assert_equal({}, d)
+
+  call mapset('i', 0, orig)
+  call feedkeys("SK\<Esc>", 'xt')
+  call assert_equal('one<CR>two', getline(1))
+
+  iunmap K
+  let &cpo = cpo_save
+
+  bwipe!
 endfunc
 
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index 3bd0ec4..7d860b2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    812,
+/**/
     811,
 /**/
     810,
