diff --git a/src/map.c b/src/map.c
index 917f1a2..f142db0 100644
--- a/src/map.c
+++ b/src/map.c
@@ -2295,6 +2295,7 @@
     int		noremap;
     int		expr;
     int		silent;
+    int		buffer;
     scid_T	sid;
     linenr_T	lnum;
     mapblock_T	**map_table = maphash;
@@ -2336,18 +2337,31 @@
     silent = dict_get_number(d, (char_u *)"silent") != 0;
     sid = dict_get_number(d, (char_u *)"sid");
     lnum = dict_get_number(d, (char_u *)"lnum");
-    if (dict_get_number(d, (char_u *)"buffer"))
+    buffer = dict_get_number(d, (char_u *)"buffer");
+    nowait = dict_get_number(d, (char_u *)"nowait") != 0;
+    // mode from the dict is not used
+
+    if (buffer)
     {
 	map_table = curbuf->b_maphash;
 	abbr_table = &curbuf->b_first_abbr;
     }
-    nowait = dict_get_number(d, (char_u *)"nowait") != 0;
-    // mode from the dict is not used
 
     // Delete any existing mapping for this lhs and mode.
-    arg = vim_strsave(lhs);
-    if (arg == NULL)
-	return;
+    if (buffer)
+    {
+	arg = alloc(STRLEN(lhs) + STRLEN("<buffer>") + 1);
+	if (arg == NULL)
+	    return;
+	STRCPY(arg, "<buffer>");
+	STRCPY(arg + 8, lhs);
+    }
+    else
+    {
+	arg = vim_strsave(lhs);
+	if (arg == NULL)
+	    return;
+    }
     do_map(1, arg, mode, is_abbr);
     vim_free(arg);
 
diff --git a/src/testdir/test_maparg.vim b/src/testdir/test_maparg.vim
index d0f2ec2..4cd32a5 100644
--- a/src/testdir/test_maparg.vim
+++ b/src/testdir/test_maparg.vim
@@ -254,6 +254,27 @@
   endif
 endfunc
 
+func Test_map_local()
+  nmap a global
+  nmap <buffer>a local
+
+  let prev_map_list = split(execute('nmap a'), "\n")
+  call assert_match('n\s*a\s*@local', prev_map_list[0])
+  call assert_match('n\s*a\s*global', prev_map_list[1])
+
+  let mapping = maparg('a', 'n', 0, 1)
+  call assert_equal(1, mapping.buffer)
+  let mapping.rhs = 'new_local'
+  call mapset('n', 0, mapping)
+
+  " Check that the global mapping is left untouched.
+  let map_list = split(execute('nmap a'), "\n")
+  call assert_match('n\s*a\s*@new_local', map_list[0])
+  call assert_match('n\s*a\s*global', map_list[1])
+
+  nunmap a
+endfunc
+
 func Test_map_restore()
   " Test restoring map with alternate keycode
   nmap <C-B> back
diff --git a/src/version.c b/src/version.c
index a6667e9..c5c3fee 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2804,
+/**/
     2803,
 /**/
     2802,
