diff --git a/doc/src/sgml/ref/pg_dumpall.sgml b/doc/src/sgml/ref/pg_dumpall.sgml
index 6cf1c0d538c8665b281f05cf1aaf7c7e48e3cf9d..e6de1ea64e5f80d3ad6031d793f3b0c9834db1a5 100644
--- a/doc/src/sgml/ref/pg_dumpall.sgml
+++ b/doc/src/sgml/ref/pg_dumpall.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.55 2005/11/01 21:09:50 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/pg_dumpall.sgml,v 1.56 2006/06/16 22:01:17 momjian Exp $
 PostgreSQL documentation
 -->
 
@@ -377,6 +377,13 @@ PostgreSQL documentation
    databases.
   </para>
 
+  <para>
+   <application>pg_dumpall</application> requires all needed
+   tablespace directories to exist before the restore or
+   database creation will fail for databases in non-default
+   locations.
+  </para>
+
  </refsect1>
 
 
diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c
index ecbd15f28c447b036d09c7d175608289f9b56526..b49766507e2238d4f9d13d5f21c8df4c3367ac9c 100644
--- a/src/bin/pg_dump/pg_dumpall.c
+++ b/src/bin/pg_dump/pg_dumpall.c
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  *
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.79 2006/06/07 22:24:45 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dumpall.c,v 1.80 2006/06/16 22:01:17 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -888,7 +888,15 @@ dumpCreateDB(PGconn *conn)
 			appendPQExpBuffer(buf, " ENCODING = ");
 			appendStringLiteralConn(buf, dbencoding, conn);
 
-			/* Output tablespace if it isn't default */
+			/*
+			 *	Output tablespace if it isn't the default.  For default, it
+			 *	uses the default from the template database.  If tablespace
+			 *	is specified and tablespace creation failed earlier,
+			 *	(e.g. no such directory), the database creation will fail
+			 *	too.  One solution would be to use 'SET default_tablespace'
+			 *	like we do in pg_dump for setting non-default database
+			 *	locations.
+			 */
 			if (strcmp(dbtablespace, "pg_default") != 0)
 				appendPQExpBuffer(buf, " TABLESPACE = %s",
 								  fmtId(dbtablespace));