diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 328a1c079f1ca043ae96de8788572b96e0915689..e558b867092d7cbaeec1a29e7ff6480222ab2aaa 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.103 2004/07/15 03:56:06 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/describe.c,v 1.104 2004/08/20 20:18:23 momjian Exp $
  */
 #include "postgres_fe.h"
 #include "describe.h"
@@ -112,6 +112,12 @@ describeTablespaces(const char *pattern, bool verbose)
 	PGresult   *res;
 	printQueryOpt myopt = pset.popt;
 
+	if (pset.sversion < 70500) {
+			fprintf(stderr, _("This server version (%d) does not support tablespaces.\n"),
+							pset.sversion);
+			return true;
+	}
+
 	initPQExpBuffer(&buf);
 
 	printfPQExpBuffer(&buf,
@@ -706,8 +712,9 @@ describeOneTableDetails(const char *schemaname,
 	/* Get general table info */
 	printfPQExpBuffer(&buf,
 	 "SELECT relhasindex, relkind, relchecks, reltriggers, relhasrules, \n" 
-					"relhasoids, reltablespace \n"
+					"relhasoids %s \n"
 					  "FROM pg_catalog.pg_class WHERE oid = '%s'",
+					  pset.sversion >= 70500 ? ", reltablespace" : "",
 					  oid);
 	res = PSQLexec(buf.data, false);
 	if (!res)
@@ -729,7 +736,8 @@ describeOneTableDetails(const char *schemaname,
 	tableinfo.hasindex = strcmp(PQgetvalue(res, 0, 0), "t") == 0;
 	tableinfo.hasrules = strcmp(PQgetvalue(res, 0, 4), "t") == 0;
 	tableinfo.hasoids = strcmp(PQgetvalue(res, 0, 5), "t") == 0;
-	tableinfo.tablespace = atooid(PQgetvalue(res, 0, 6));
+	tableinfo.tablespace = (pset.sversion >= 70500) ? 
+			atooid(PQgetvalue(res, 0, 6)) : 0;
 	PQclear(res);
 
 	headers[0] = _("Column");
@@ -932,8 +940,8 @@ describeOneTableDetails(const char *schemaname,
 
 			footers = pg_malloc_zero(4 * sizeof(*footers));
 			footers[count_footers++] = pg_strdup(tmpbuf.data);
-	        add_tablespace_footer(tableinfo.relkind, tableinfo.tablespace,
-    	        footers, &count_footers, tmpbuf);
+			add_tablespace_footer(tableinfo.relkind, tableinfo.tablespace,
+														footers, &count_footers, tmpbuf);
 			footers[count_footers] = NULL;
 
 		}
diff --git a/src/bin/psql/settings.h b/src/bin/psql/settings.h
index d8766b045a88336d8ed7bee452f3c463128e50f3..74046e9d3a1c2937ca3a05ac8c9e8abc028109df 100644
--- a/src/bin/psql/settings.h
+++ b/src/bin/psql/settings.h
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2003, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/settings.h,v 1.18 2004/05/12 13:38:45 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/settings.h,v 1.19 2004/08/20 20:18:23 momjian Exp $
  */
 #ifndef SETTINGS_H
 #define SETTINGS_H
@@ -41,7 +41,7 @@ typedef struct _psqlSettings
 	FILE	   *cur_cmd_source; /* describe the status of the current main
 								 * loop */
 	bool		cur_cmd_interactive;
-
+	int		sversion; /* backend server version */
 	const char *progname;		/* in case you renamed psql */
 	char	   *inputfile;		/* for error reporting */
 	unsigned	lineno;			/* also for error reporting */
diff --git a/src/bin/psql/startup.c b/src/bin/psql/startup.c
index 2bd2b50aff03179ee457e167570c190017d37ce9..2773e92a61fe2e9bf38cb00e41072407cc777248 100644
--- a/src/bin/psql/startup.c
+++ b/src/bin/psql/startup.c
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2000-2003, PostgreSQL Global Development Group
  *
- * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.96 2004/08/18 02:59:11 momjian Exp $
+ * $PostgreSQL: pgsql/src/bin/psql/startup.c,v 1.97 2004/08/20 20:18:23 momjian Exp $
  */
 #include "postgres_fe.h"
 
@@ -217,6 +217,9 @@ main(int argc, char *argv[])
 
 	SyncVariables();
 
+	/* Grab the backend server version */
+	pset.sversion = PQserverVersion(pset.db);
+
 	if (options.action == ACT_LIST_DB)
 	{
 		int			success = listAllDbs(false);