diff --git a/src/mark.c b/src/mark.c
index 6a7ab00..1b34c20 100644
--- a/src/mark.c
+++ b/src/mark.c
@@ -744,11 +744,12 @@
     int		c,
     char_u	*arg,
     pos_T	*p,
-    char_u	*name,
+    char_u	*name_arg,
     int		current)	/* in current file */
 {
     static int	did_title = FALSE;
     int		mustfree = FALSE;
+    char_u	*name = name_arg;
 
     if (c == -1)			    /* finish up */
     {
@@ -762,35 +763,38 @@
 		semsg(_("E283: No marks matching \"%s\""), arg);
 	}
     }
-    /* don't output anything if 'q' typed at --more-- prompt */
+    // don't output anything if 'q' typed at --more-- prompt
     else if (!got_int
 	    && (arg == NULL || vim_strchr(arg, c) != NULL)
 	    && p->lnum != 0)
     {
-	if (!did_title)
+	if (name == NULL && current)
 	{
-	    /* Highlight title */
-	    msg_puts_title(_("\nmark line  col file/text"));
-	    did_title = TRUE;
+	    name = mark_line(p, 15);
+	    mustfree = TRUE;
 	}
-	msg_putchar('\n');
-	if (!got_int)
+	if (!message_filtered(name))
 	{
-	    sprintf((char *)IObuff, " %c %6ld %4d ", c, p->lnum, p->col);
-	    msg_outtrans(IObuff);
-	    if (name == NULL && current)
+	    if (!did_title)
 	    {
-		name = mark_line(p, 15);
-		mustfree = TRUE;
+		// Highlight title
+		msg_puts_title(_("\nmark line  col file/text"));
+		did_title = TRUE;
 	    }
-	    if (name != NULL)
+	    msg_putchar('\n');
+	    if (!got_int)
 	    {
-		msg_outtrans_attr(name, current ? HL_ATTR(HLF_D) : 0);
-		if (mustfree)
-		    vim_free(name);
+		sprintf((char *)IObuff, " %c %6ld %4d ", c, p->lnum, p->col);
+		msg_outtrans(IObuff);
+		if (name != NULL)
+		{
+		    msg_outtrans_attr(name, current ? HL_ATTR(HLF_D) : 0);
+		}
 	    }
+	    out_flush();		    // show one line at a time
 	}
-	out_flush();		    /* show one line at a time */
+	if (mustfree)
+	    vim_free(name);
     }
 }
 
diff --git a/src/testdir/test_filter_cmd.vim b/src/testdir/test_filter_cmd.vim
index 6f40a90..0c45db0 100644
--- a/src/testdir/test_filter_cmd.vim
+++ b/src/testdir/test_filter_cmd.vim
@@ -126,7 +126,22 @@
   let res = split(execute("filter /\.c$/ jumps"), "\n")[1:]
   call assert_equal(["   2     1    0 file.c", ">"], res)
 
-  bwipe file.c
-  bwipe file.h
-  bwipe file.hs
+  " Test filtering :marks command
+  b file.c
+  mark A
+  b file.h
+  mark B
+  let res = split(execute("filter /\.c$/ marks"), "\n")[1:]
+  call assert_equal([" A      1    0 file.c"], res)
+
+  call setline(1, ['one', 'two', 'three'])
+  1mark a
+  2mark b
+  3mark c
+  let res = split(execute("filter /two/ marks abc"), "\n")[1:]
+  call assert_equal([" b      2    0 two"], res)
+
+  bwipe! file.c
+  bwipe! file.h
+  bwipe! file.hs
 endfunc
diff --git a/src/version.c b/src/version.c
index 9fe5d2d..c65c541 100644
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1221,
+/**/
     1220,
 /**/
     1219,
