diff --git a/src/doc/screen.1 b/src/doc/screen.1
index 454205b..ab5dab3 100644
--- a/src/doc/screen.1
+++ b/src/doc/screen.1
@@ -231,7 +231,11 @@ The use of this option is discouraged.
 turns login mode on or off (for /etc/utmp updating).
 This can also be defined through the \*Qdeflogin\*U .screenrc command.
 .TP 5
-.BR \-ls " and " \-list
+.BR \-ls " [" \fImatch ]
+.PD 0
+.TP 5
+.BR \-list " [" \fImatch ] 
+.PD
 does not start
 .IR screen ,
 but prints a list of
@@ -326,7 +330,7 @@ had not been specified. The option is set by default if
 is run as a login-shell (actually screen uses \*Q-xRR\*U in that case).
 For combinations with the \fB\-d\fP/\fB\-D\fP option see there.
 .TP 5
-.B \-s
+.BI "\-s " program 
 sets the default shell to the program specified, instead of the value
 in the environment variable $SHELL (or \*Q/bin/sh\*U if not defined).
 This can also be defined through the \*Qshell\*U .screenrc command.
diff --git a/src/doc/screen.texinfo b/src/doc/screen.texinfo
index 001169c..8ece296 100644
--- a/src/doc/screen.texinfo
+++ b/src/doc/screen.texinfo
@@ -344,12 +344,19 @@ This also starts @code{screen} in @emph{detached} mode, but doesn't fork
 a new process. The command exits if the session terminates.
 @end table
 
-@item -p @var{name_or_number}
+@item -O
+Select a more optimal output mode for your terminal rather than true VT100
+emulation (only affects auto-margin  terminals  without @samp{LP}). This
+can also be set in your @file{.screenrc} by specifying @samp{OP} in the 
+@code{termcap} command.
+
+@item -p @var{name_or_number}|-|=|+
 Preselect a window. This is useful when you want to reattach to a
 specific window or you want to send a command via the @samp{-X}
 option to a specific window. As with screen's select command, @samp{-}
 selects the blank window. As a special case for reattach, @samp{=}
-brings up the windowlist on the blank window.
+brings up the windowlist on the blank window, while a @samp{+} will
+create new window.
 
 @item -q
 Suppress printing of error messages. In combination with @samp{-ls} the exit 
diff --git a/src/help.c b/src/help.c
index ac7209f..a6497ce 100644
--- a/src/help.c
+++ b/src/help.c
@@ -74,13 +74,13 @@ char *myname, *message, *arg;
 #if defined(LOGOUTOK) && defined(UTMPOK)
   printf("-l            Login mode on (update %s), -ln = off.\n", UTMPFILE);
 #endif
-  printf("-list         or -ls. Do nothing, just list our SockDir.\n");
+  printf("-ls [match]   or -list. Do nothing, just list our SockDir [on possible matches].\n");
   printf("-L            Turn on output logging.\n");
   printf("-m            ignore $STY variable, do create a new screen session.\n");
   printf("-O            Choose optimal output rather than exact vt100 emulation.\n");
   printf("-p window     Preselect the named window if it exists.\n");
   printf("-q            Quiet startup. Exits with non-zero return code if unsuccessful.\n");
-  printf("-r            Reattach to a detached screen process.\n");
+  printf("-r [session]  Reattach to a detached screen process.\n");
   printf("-R            Reattach if possible, otherwise start a new session.\n");
   printf("-s shell      Shell to execute rather than $SHELL.\n");
   printf("-S sockname   Name this session <pid>.sockname instead of <pid>.<tty>.<host>.\n");
@@ -90,7 +90,7 @@ char *myname, *message, *arg;
   printf("-U            Tell screen to use UTF-8 encoding.\n");
 #endif
   printf("-v            Print \"Screen version %s\".\n", version);
-  printf("-wipe         Do nothing, just clean up SockDir.\n");
+  printf("-wipe [match] Do nothing, just clean up SockDir [on possible matches].\n");
 #ifdef MULTI
   printf("-x            Attach to a not detached screen. (Multi display mode).\n");
 #endif /* MULTI */
