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,
