diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index b398251745fc2241859bcc00fc5fdcf761f76628..58aa40e72ab3f3e713d0f17fac0dcb74abfb827a 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.101 2003/12/01 22:21:54 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.102 2003/12/23 23:13:14 momjian Exp $
 PostgreSQL documentation
 -->
 
@@ -957,6 +957,7 @@ testdb=>
         Lists all available schemas (namespaces). If <replaceable
         class="parameter">pattern</replaceable> (a regular expression)
         is specified, only schemas whose names match the pattern are listed.
+        Non-local temporary schemas are suppressed.
         </para>
         </listitem>
       </varlistentry>
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 66a7d7b5d23a61397339c8a3f6ed7dfe6a0899e5..96903c8be029b0274a4f4902105348e32e66bd10 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2003, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.90 2003/12/01 22:21:54 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.91 2003/12/23 23:13:14 momjian Exp $
  */
 #include "postgres_fe.h"
 #include "describe.h"
@@ -1626,14 +1626,15 @@ listSchemas(const char *pattern)
 
 	initPQExpBuffer(&buf);
 	printfPQExpBuffer(&buf,
-					  "SELECT n.nspname AS \"%s\",\n"
-					  "       u.usename AS \"%s\"\n"
+		"SELECT n.nspname AS \"%s\",\n"
+		"       u.usename AS \"%s\"\n"
 		"FROM pg_catalog.pg_namespace n LEFT JOIN pg_catalog.pg_user u\n"
-					  "       ON n.nspowner=u.usesysid\n",
+		"       ON n.nspowner=u.usesysid\n"
+		"WHERE	(n.nspname NOT LIKE 'pg\\\\_temp\\\\_%%' OR\n"
+		"		 n.nspname = (pg_catalog.current_schemas(true))[1])\n",	/* temp schema is first */
 					  _("Name"),
 					  _("Owner"));
-
-	processNamePattern(&buf, pattern, false, false,
+	processNamePattern(&buf, pattern, true, false,
 					   NULL, "n.nspname", NULL,
 					   NULL);