updated for version 7.4.588
Problem:    ":0argedit foo" puts the new argument in the second place instead
            of the first.
Solution:   Adjust the range type. (Ingo Karkat)
diff --git a/src/ex_cmds.h b/src/ex_cmds.h
index 941a97d..21d42d5 100644
--- a/src/ex_cmds.h
+++ b/src/ex_cmds.h
@@ -136,7 +136,7 @@
 			BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL,
 			ADDR_ARGUMENTS),
 EX(CMD_argedit,		"argedit",	ex_argedit,
-			BANG|NEEDARG|RANGE|NOTADR|FILE1|EDITCMD|ARGOPT|TRLBAR,
+			BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILE1|EDITCMD|ARGOPT|TRLBAR,
 			ADDR_ARGUMENTS),
 EX(CMD_argglobal,	"argglobal",	ex_args,
 			BANG|FILES|EDITCMD|ARGOPT|TRLBAR,
diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak
index c8becc7..0e9898b 100644
--- a/src/testdir/Make_amiga.mak
+++ b/src/testdir/Make_amiga.mak
@@ -36,6 +36,7 @@
 		test94.out test95.out test96.out test97.out test98.out \
 		test99.out test100.out test101.out test102.out test103.out \
 		test104.out test105.out test106.out test107.out \
+		test_argument_0count.out \
 		test_argument_count.out \
 		test_autoformat_join.out \
 		test_breakindent.out \
@@ -175,6 +176,7 @@
 test105.out: test105.in
 test106.out: test106.in
 test107.out: test107.in
+test_argument_0count.out: test_argument_0count.in
 test_argument_count.out: test_argument_count.in
 test_autoformat_join.out: test_autoformat_join.in
 test_breakindent.out: test_breakindent.in
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak
index 57f85ea..1ba4407 100644
--- a/src/testdir/Make_dos.mak
+++ b/src/testdir/Make_dos.mak
@@ -35,6 +35,7 @@
 		test94.out test95.out test96.out test98.out test99.out \
 		test100.out test101.out test102.out test103.out test104.out \
 		test105.out test106.out  test107.out\
+		test_argument_0count.out \
 		test_argument_count.out \
 		test_autoformat_join.out \
 		test_breakindent.out \
diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak
index 5718d46..51049fb 100644
--- a/src/testdir/Make_ming.mak
+++ b/src/testdir/Make_ming.mak
@@ -57,6 +57,7 @@
 		test94.out test95.out test96.out test98.out test99.out \
 		test100.out test101.out test102.out test103.out test104.out \
 		test105.out test106.out test107.out \
+		test_argument_0count.out \
 		test_argument_count.out \
 		test_autoformat_join.out \
 		test_breakindent.out \
diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak
index 1ba2dfe..0b3ce26 100644
--- a/src/testdir/Make_os2.mak
+++ b/src/testdir/Make_os2.mak
@@ -37,6 +37,7 @@
 		test94.out test95.out test96.out test98.out test99.out \
 		test100.out test101.out test102.out test103.out test104.out \
 		test105.out test106.out test107.out \
+		test_argument_0count.out \
 		test_argument_count.out \
 		test_autoformat_join.out \
 		test_breakindent.out \
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
index 9fecf9f..f57bf55 100644
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -96,6 +96,7 @@
 	 test95.out test96.out test98.out test99.out \
 	 test100.out test101.out test103.out test104.out \
 	 test105.out test106.out test107.out \
+	 test_argument_0count.out \
 	 test_argument_count.out \
 	 test_autoformat_join.out \
 	 test_breakindent.out \
diff --git a/src/testdir/Makefile b/src/testdir/Makefile
index e76a72b..671c30d 100644
--- a/src/testdir/Makefile
+++ b/src/testdir/Makefile
@@ -33,6 +33,7 @@
 		test94.out test95.out test96.out test97.out test98.out \
 		test99.out test100.out test101.out test102.out test103.out \
 		test104.out test105.out test106.out test107.out \
+		test_argument_0count.out \
 		test_argument_count.out \
 		test_autoformat_join.out \
 		test_breakindent.out \
diff --git a/src/testdir/test_argument_0count.in b/src/testdir/test_argument_0count.in
new file mode 100644
index 0000000..88317fa
--- /dev/null
+++ b/src/testdir/test_argument_0count.in
@@ -0,0 +1,28 @@
+Tests for :0argadd and :0argedit     vim: set ft=vim :
+
+STARTTEST
+:so small.vim
+:let arglists = []
+:%argd
+:arga a b c d
+:2argu
+:0arga added
+:call add(arglists, argv())
+:2argu
+:arga third
+:call add(arglists, argv())
+:%argd
+:arga a b c d
+:2argu
+:0arge edited
+:call add(arglists, argv())
+:2argu
+:arga third
+:call add(arglists, argv())
+:e! test.out
+:call append(0, map(copy(arglists), 'join(v:val, " ")'))
+:w
+:qa!
+ENDTEST
+
+
diff --git a/src/testdir/test_argument_0count.ok b/src/testdir/test_argument_0count.ok
new file mode 100644
index 0000000..ee5daea
--- /dev/null
+++ b/src/testdir/test_argument_0count.ok
@@ -0,0 +1,5 @@
+added a b c d
+added a third b c d
+edited a b c d
+edited a third b c d
+
diff --git a/src/version.c b/src/version.c
index 9cbee6e..2f08c24 100644
--- a/src/version.c
+++ b/src/version.c
@@ -742,6 +742,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    588,
+/**/
     587,
 /**/
     586,