diff --git a/doc_src/psub.txt b/doc_src/psub.txt
index 0e02281b5..c12278d3e 100644
--- a/doc_src/psub.txt
+++ b/doc_src/psub.txt
@@ -1,7 +1,7 @@
\section psub psub - perform process substitution
\subsection psub-synopsis Synopsis
- COMMAND1 (COMMAND2|psub)
+ COMMAND1 (COMMAND2|psub [-f])
\subsection psub-description Description
@@ -14,6 +14,12 @@ filename of the named pipe sent as an argument to the calling
program. The psub shellscript function, which when combined with a
regular command substitution provides the same functionality.
+If the \c -f or \c --file switch is given to psub, psub will use a
+regular file instead of a named pipe to communicate with the calling
+process. This will cause psub to be significantly slower when large
+amounts of data are involved, but has the advantage that the reading
+process can seek in the stream.
+
\subsection psub-example Example
diff (sort a.txt|psub) (sort b.txt|psub) shows the difference
diff --git a/share/completions/psub.fish b/share/completions/psub.fish
new file mode 100644
index 000000000..08b2296ef
--- /dev/null
+++ b/share/completions/psub.fish
@@ -0,0 +1,2 @@
+complete -c psub -s h -l help -d (N_ "Display help and exit")
+complete -c psub -s f -l file -d (N_ "Communicate using a regular file, not a named pipe")