diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 2832bed..4121fbd 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -1,4 +1,4 @@
-*map.txt*       For Vim version 8.1.  Last change: 2018 Dec 18
+*map.txt*       For Vim version 8.1.  Last change: 2019 Apr 25
 
 
 		  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1193,9 +1193,10 @@
 
 :com[mand]						*:com* *:command*
 			List all user-defined commands.  When listing commands,
-			the characters in the first two columns are
+			the characters in the first columns are:
 			    !	Command has the -bang attribute
 			    "	Command has the -register attribute
+			    |   Command has the -bar attribute
 			    b	Command is local to current buffer
 			(see below for details on attributes)
 			The list can be filtered on command name with
@@ -1400,14 +1401,15 @@
 by default correspond to the current line, last line and the whole buffer,
 relate to arguments, (loaded) buffers, windows or tab pages.
 
-Possible values are:
-	-addr=lines		Range of lines (this is the default)
-	-addr=arguments		Range for arguments
-	-addr=buffers		Range for buffers (also not loaded buffers)
-	-addr=loaded_buffers	Range for loaded buffers
-	-addr=windows		Range for windows
-	-addr=tabs		Range for tab pages
-	-addr=other		other kind of range
+Possible values are (second column is the short name used in listing):
+    -addr=lines		  	Range of lines (this is the default)
+    -addr=arguments	  arg	Range for arguments
+    -addr=buffers	  buf	Range for buffers (also not loaded buffers)
+    -addr=loaded_buffers  load	Range for loaded buffers
+    -addr=windows	  win	Range for windows
+    -addr=tabs		  tab	Range for tab pages
+    -addr=quickfix	  qf	Range for quickfix entries
+    -addr=other		  ?	other kind of range
 
 
 Special cases ~
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index af68a8e..6b2fe46 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -5915,17 +5915,18 @@
 {
     int	    expand;
     char    *name;
+    char    *shortname;
 } addr_type_complete[] =
 {
-    {ADDR_ARGUMENTS, "arguments"},
-    {ADDR_LINES, "lines"},
-    {ADDR_LOADED_BUFFERS, "loaded_buffers"},
-    {ADDR_TABS, "tabs"},
-    {ADDR_BUFFERS, "buffers"},
-    {ADDR_WINDOWS, "windows"},
-    {ADDR_QUICKFIX, "quickfix"},
-    {ADDR_OTHER, "other"},
-    {-1, NULL}
+    {ADDR_ARGUMENTS, "arguments", "arg"},
+    {ADDR_LINES, "lines", "line"},
+    {ADDR_LOADED_BUFFERS, "loaded_buffers", "load"},
+    {ADDR_TABS, "tabs", "tab"},
+    {ADDR_BUFFERS, "buffers", "buf"},
+    {ADDR_WINDOWS, "windows", "win"},
+    {ADDR_QUICKFIX, "quickfix", "qf"},
+    {ADDR_OTHER, "other", "?"},
+    {-1, NULL, NULL}
 };
 #endif
 
@@ -6020,7 +6021,7 @@
 
 	    /* Put out the title first time */
 	    if (!found)
-		msg_puts_title(_("\n    Name              Args Address Complete   Definition"));
+		msg_puts_title(_("\n    Name              Args Address Complete    Definition"));
 	    found = TRUE;
 	    msg_putchar('\n');
 	    if (got_int)
@@ -6101,14 +6102,14 @@
 
 	    do {
 		IObuff[len++] = ' ';
-	    } while (len < 9 - over);
+	    } while (len < 8 - over);
 
 	    // Address Type
 	    for (j = 0; addr_type_complete[j].expand != -1; ++j)
 		if (addr_type_complete[j].expand != ADDR_LINES
 			&& addr_type_complete[j].expand == cmd->uc_addr_type)
 		{
-		    STRCPY(IObuff + len, addr_type_complete[j].name);
+		    STRCPY(IObuff + len, addr_type_complete[j].shortname);
 		    len += (int)STRLEN(IObuff + len);
 		    break;
 		}
@@ -6128,13 +6129,13 @@
 
 	    do {
 		IObuff[len++] = ' ';
-	    } while (len < 24 - over);
+	    } while (len < 25 - over);
 
 	    IObuff[len] = '\0';
 	    msg_outtrans(IObuff);
 
 	    msg_outtrans_special(cmd->uc_rep, FALSE,
-					     name_len == 0 ? Columns - 46 : 0);
+					     name_len == 0 ? Columns - 47 : 0);
 #ifdef FEAT_EVAL
 	    if (p_verbose > 0)
 		last_set_msg(cmd->uc_script_ctx);
diff --git a/src/version.c b/src/version.c
index 2b90f01..330bdf1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -772,6 +772,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1204,
+/**/
     1203,
 /**/
     1202,
