diff --git a/src/Makefile b/src/Makefile
index 4b29ae1..3f61de6 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2164,6 +2164,7 @@
 	test_substitute \
 	test_syn_attr \
 	test_syntax \
+	test_system \
 	test_tabline \
 	test_tabpage \
 	test_tagcase \
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 10f6b18..f66fa9a 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -11817,7 +11817,6 @@
     char_u	*res = NULL;
     char_u	*p;
     char_u	*infile = NULL;
-    char_u	buf[NUMBUFLEN];
     int		err = FALSE;
     FILE	*fd;
     list_T	*list = NULL;
@@ -11831,7 +11830,7 @@
     if (argvars[1].v_type != VAR_UNKNOWN)
     {
 	/*
-	 * Write the string to a temp file, to be used for input of the shell
+	 * Write the text to a temp file, to be used for input of the shell
 	 * command.
 	 */
 	if ((infile = vim_tempname('i', TRUE)) == NULL)
@@ -11846,14 +11845,42 @@
 	    EMSG2(_(e_notopen), infile);
 	    goto errret;
 	}
-	if (argvars[1].v_type == VAR_LIST)
+	if (argvars[1].v_type == VAR_NUMBER)
+	{
+	    linenr_T	lnum;
+	    buf_T	*buf;
+
+	    buf = buflist_findnr(argvars[1].vval.v_number);
+	    if (buf == NULL)
+	    {
+		EMSGN(_(e_nobufnr), argvars[1].vval.v_number);
+		goto errret;
+	    }
+
+	    for (lnum = 1; lnum <= buf->b_ml.ml_line_count; lnum++)
+	    {
+		for (p = ml_get_buf(buf, lnum, FALSE); *p != NUL; ++p)
+		    if (putc(*p == '\n' ? NUL : *p, fd) == EOF)
+		    {
+			err = TRUE;
+			break;
+		    }
+		if (putc(NL, fd) == EOF)
+		{
+		    err = TRUE;
+		    break;
+		}
+	    }
+	}
+	else if (argvars[1].v_type == VAR_LIST)
 	{
 	    if (write_list(fd, argvars[1].vval.v_list, TRUE) == FAIL)
 		err = TRUE;
 	}
 	else
 	{
-	    size_t len;
+	    size_t	len;
+	    char_u	buf[NUMBUFLEN];
 
 	    p = get_tv_string_buf_chk(&argvars[1], buf);
 	    if (p == NULL)
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index 072c61c..63a1b05 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -184,6 +184,7 @@
 	    test_stat.res \
 	    test_substitute.res \
 	    test_syntax.res \
+	    test_system.res \
 	    test_textobjects.res \
 	    test_undo.res \
 	    test_usercommands.res \
diff --git a/src/testdir/test_system.vim b/src/testdir/test_system.vim
new file mode 100644
index 0000000..5e8d68b
--- /dev/null
+++ b/src/testdir/test_system.vim
@@ -0,0 +1,20 @@
+" Tests for system() and systemlist()
+
+function! Test_System()
+  if !executable('echo') || !executable('cat') || !executable('wc')
+    return
+  endif
+  call assert_equal("123\n", system('echo 123'))
+  call assert_equal(['123'], systemlist('echo 123'))
+  call assert_equal('123',   system('cat', '123'))
+  call assert_equal(['123'], systemlist('cat', '123'))
+  call assert_equal(["as\<NL>df"], systemlist('cat', ["as\<NL>df"]))
+  new Xdummy
+  call setline(1, ['asdf', "pw\<NL>er", 'xxxx'])
+  call assert_equal("3\n",  system('wc -l', bufnr('%')))
+  call assert_equal(['3'],  systemlist('wc -l', bufnr('%')))
+  call assert_equal(['asdf', "pw\<NL>er", 'xxxx'],  systemlist('cat', bufnr('%')))
+  bwipe!
+
+  call assert_fails('call system("wc -l", 99999)', 'E86:')
+endfunction
diff --git a/src/version.c b/src/version.c
index 0c16c28..3be6cbb 100644
--- a/src/version.c
+++ b/src/version.c
@@ -765,6 +765,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    151,
+/**/
     150,
 /**/
     149,
