diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index 9fbafcc88148c9fe984007205b7effd887c61aba..06b0cbb2b17fe3c277e09e65869834ea871ad87f 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.48 2001/05/06 17:21:11 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.49 2001/05/06 17:38:31 petere Exp $
 Postgres documentation
 -->
 
@@ -1292,6 +1292,12 @@ Access permissions for database "test"
       After the file is processed, <application>psql</application> terminates.
       This is in many ways equivalent to the internal command <command>\i</command>.
       </para>
+
+      <para>
+       If <replaceable>filename</replaceable> is <literal>-</literal>
+       (hyphen), then standard input is read.
+      </para>
+
       <para>
       Using this option is subtly different from writing
       <literal>psql &lt; <replaceable class="parameter">filename</replaceable></literal>.
diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
index 5729b3e27e5ac9ceff1f8ebf5bb9e94b443301f6..3d38afaf6babb765d5578844484f3daca24bdc09 100644
--- a/src/bin/psql/startup.c
+++ b/src/bin/psql/startup.c
@@ -3,7 +3,7 @@
  *
  * Copyright 2000 by PostgreSQL Global Development Group
  *
- * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.46 2001/03/23 00:36:38 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.47 2001/05/06 17:38:32 petere Exp $
  */
 #include "postgres_fe.h"
 
@@ -230,7 +230,7 @@ main(int argc, char *argv[])
 	/*
 	 * process file given by -f
 	 */
-	if (options.action == ACT_FILE)
+	if (options.action == ACT_FILE && strcmp(options.action_string, "-")!=0)
 	{
 		if (!options.no_psqlrc)
 			process_psqlrc();
@@ -290,6 +290,8 @@ main(int argc, char *argv[])
 			process_psqlrc();
 		if (!pset.notty)
 			initializeInput(options.no_readline ? 0 : 1);
+		if (options.action_string) /* -f - was used */
+			pset.inputfile = "<stdin>";
 		successResult = MainLoop(stdin);
 	}