diff --git a/src/errors.h b/src/errors.h
index 2a76504..d4ba7f0 100644
--- a/src/errors.h
+++ b/src/errors.h
@@ -141,6 +141,8 @@
 EXTERN char e_undefined_variable_char_str[]
 	INIT(= N_("E121: Undefined variable: %c:%s"));
 #endif
+EXTERN char e_no_such_user_defined_command_str[]
+	INIT(= N_("E184: No such user-defined command: %s"));
 #ifndef FEAT_DIGRAPHS
 EXTERN char e_no_digraphs_version[]
 	INIT(= N_("E196: No digraphs in this version"));
@@ -656,3 +658,5 @@
 	INIT(= N_("E1235: Function reference is not set"));
 EXTERN char e_cannot_use_str_itself_it_is_imported_with_star[]
 	INIT(= N_("E1236: Cannot use %s itself, it is imported with '*'"));
+EXTERN char e_no_such_user_defined_command_in_current_buffer_str[]
+	INIT(= N_("E1237: No such user-defined command in current buffer: %s"));
diff --git a/src/testdir/test_usercommands.vim b/src/testdir/test_usercommands.vim
index 3f15dc1..48bfd5a 100644
--- a/src/testdir/test_usercommands.vim
+++ b/src/testdir/test_usercommands.vim
@@ -656,4 +656,25 @@
   call CheckScriptFailure(lines, 'E1231:')
 endfunc
 
+func Test_delcommand_buffer()
+  command Global echo 'global'
+  command -buffer OneBuffer echo 'one'
+  new
+  command -buffer TwoBuffer echo 'two'
+  call assert_equal(0, exists(':OneBuffer'))
+  call assert_equal(2, exists(':Global'))
+  call assert_equal(2, exists(':TwoBuffer'))
+  delcommand -buffer TwoBuffer
+  call assert_equal(0, exists(':TwoBuffer'))
+  call assert_fails('delcommand -buffer Global', 'E1237:')
+  call assert_fails('delcommand -buffer OneBuffer', 'E1237:')
+  bwipe!
+  call assert_equal(2, exists(':OneBuffer'))
+  delcommand -buffer OneBuffer
+  call assert_equal(0, exists(':OneBuffer'))
+  call assert_fails('delcommand -buffer Global', 'E1237:')
+  delcommand Global
+  call assert_equal(0, exists(':Global'))
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/usercmd.c b/src/usercmd.c
index e35f4a5..8ead42c 100644
--- a/src/usercmd.c
+++ b/src/usercmd.c
@@ -1162,8 +1162,16 @@
 {
     int		i = 0;
     ucmd_T	*cmd = NULL;
-    int		cmp = -1;
+    int		res = -1;
     garray_T	*gap;
+    char_u	*arg = eap->arg;
+    int		buffer_only = FALSE;
+
+    if (STRNCMP(arg, "-buffer", 7) == 0 && VIM_ISWHITE(arg[7]))
+    {
+	buffer_only = TRUE;
+	arg = skipwhite(arg + 7);
+    }
 
     gap = &curbuf->b_ucmds;
     for (;;)
@@ -1171,18 +1179,20 @@
 	for (i = 0; i < gap->ga_len; ++i)
 	{
 	    cmd = USER_CMD_GA(gap, i);
-	    cmp = STRCMP(eap->arg, cmd->uc_name);
-	    if (cmp <= 0)
+	    res = STRCMP(arg, cmd->uc_name);
+	    if (res <= 0)
 		break;
 	}
-	if (gap == &ucmds || cmp == 0)
+	if (gap == &ucmds || res == 0 || buffer_only)
 	    break;
 	gap = &ucmds;
     }
 
-    if (cmp != 0)
+    if (res != 0)
     {
-	semsg(_("E184: No such user-defined command: %s"), eap->arg);
+	semsg(_(buffer_only
+		    ? e_no_such_user_defined_command_in_current_buffer_str
+		    : e_no_such_user_defined_command_str), arg);
 	return;
     }
 
diff --git a/src/version.c b/src/version.c
index 7d87105..e8e5bc4 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    3433,
+/**/
     3432,
 /**/
     3431,
