diff --git a/runtime/doc/message.txt b/runtime/doc/message.txt
index 56745f3..d41915e 100644
--- a/runtime/doc/message.txt
+++ b/runtime/doc/message.txt
@@ -1,4 +1,4 @@
-*message.txt*   For Vim version 7.4.  Last change: 2016 Feb 27
+*message.txt*   For Vim version 7.4.  Last change: 2016 Apr 14
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -19,6 +19,15 @@
 is especially useful when messages have been overwritten or truncated.  This
 depends on the 'shortmess' option.
 
+	:messages		Show all messages.
+
+	:{count}messages	Show the {count} most recent messages.
+
+	:messages clear		Clear all messages.
+
+	:{count}messages clear	Clear messages, keeping only the {count} most
+				recent ones.
+
 The number of remembered messages is fixed at 20 for the tiny version and 200
 for other versions.
 
@@ -58,8 +67,9 @@
 When an error message is displayed, but it is removed before you could read
 it, you can see it again with: >
   :echo errmsg
-or view a list of recent messages with: >
+Or view a list of recent messages with: >
   :messages
+See `:messages` above.
 
 
 LIST OF MESSAGES
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 34defea..4095331 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -886,7 +886,7 @@
 			EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN,
 			ADDR_LINES),
 EX(CMD_messages,	"messages",	ex_messages,
-			TRLBAR|CMDWIN,
+			EXTRA|TRLBAR|RANGE|CMDWIN,
 			ADDR_LINES),
 EX(CMD_mkexrc,		"mkexrc",	ex_mkrc,
 			BANG|FILE1|TRLBAR|CMDWIN,
diff --git a/src/message.c b/src/message.c
index 099c3aa..b24013e 100644
--- a/src/message.c
+++ b/src/message.c
@@ -770,6 +770,22 @@
 {
     struct msg_hist *p;
     char_u	    *s;
+    int		    c = 0;
+
+    if (STRCMP(eap->arg, "clear") == 0)
+    {
+	int keep = eap->addr_count == 0 ? 0 : eap->line2;
+
+	while (msg_hist_len > keep)
+	    (void)delete_first_msg();
+	return;
+    }
+
+    if (*eap->arg != NUL)
+    {
+	EMSG(_(e_invarg));
+	return;
+    }
 
     msg_hist_off = TRUE;
 
@@ -779,7 +795,23 @@
 		_("Messages maintainer: Bram Moolenaar <Bram@vim.org>"),
 		hl_attr(HLF_T));
 
-    for (p = first_msg_hist; p != NULL && !got_int; p = p->next)
+    p = first_msg_hist;
+
+    if (eap->addr_count != 0)
+    {
+	/* Count total messages */
+	for (; p != NULL && !got_int; p = p->next)
+	    c++;
+
+	c -= eap->line2;
+
+	/* Skip without number of messages specified */
+	for (p = first_msg_hist; p != NULL && !got_int && c > 0;
+						    p = p->next, c--);
+    }
+
+    /* Display what was not skipped. */
+    for (; p != NULL && !got_int; p = p->next)
 	if (p->msg != NULL)
 	    msg_attr(p->msg, p->attr);
 
diff --git a/src/testdir/test_alot.vim b/src/testdir/test_alot.vim
index 7f9a1a7..d393fe7 100644
--- a/src/testdir/test_alot.vim
+++ b/src/testdir/test_alot.vim
@@ -17,6 +17,7 @@
 source test_lispwords.vim
 source test_matchstrpos.vim
 source test_menu.vim
+source test_messages.vim
 source test_partial.vim
 source test_reltime.vim
 source test_searchpos.vim
diff --git a/src/testdir/test_messages.vim b/src/testdir/test_messages.vim
new file mode 100644
index 0000000..4d7e411
--- /dev/null
+++ b/src/testdir/test_messages.vim
@@ -0,0 +1,42 @@
+" Tests for :messages
+
+function Test_messages()
+  let oldmore = &more
+  try
+    set nomore
+
+    let arr = map(range(10), '"hello" . v:val')
+    for s in arr
+      echomsg s | redraw
+    endfor
+    let result = ''
+
+    redir => result
+    2messages | redraw
+    redir END
+
+    " get last two messages
+    let msg = split(result, "\n")[1:][-2:]
+    call assert_equal(["hello8", "hello9"], msg)
+
+    " clear messages without last one
+    1messages clear
+    redir => result
+    redraw | 1messages
+    redir END
+    " get last last message
+    let msg = split(result, "\n")[1:][-1:]
+    call assert_equal(['hello9'], msg)
+
+    " clear all messages
+    messages clear
+    redir => result
+    redraw | 1messages
+    redir END
+    " get last last message
+    let msg = split(result, "\n")[1:][-1:]
+    call assert_equal([], msg)
+  finally
+    let &more = oldmore
+  endtry
+endfunction
diff --git a/src/version.c b/src/version.c
index a013661..93c74d3 100644
--- a/src/version.c
+++ b/src/version.c
@@ -749,6 +749,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1735,
+/**/
     1734,
 /**/
     1733,
