diff --git a/doc/src/sgml/ref/comment.sgml b/doc/src/sgml/ref/comment.sgml
index ab12614..58a2f02 100644
*** a/doc/src/sgml/ref/comment.sgml
--- b/doc/src/sgml/ref/comment.sgml
*************** COMMENT ON
*** 26,32 ****
    AGGREGATE <replaceable class="PARAMETER">agg_name</replaceable> (<replaceable class="PARAMETER">agg_type</replaceable> [, ...] ) |
    CAST (<replaceable>source_type</replaceable> AS <replaceable>target_type</replaceable>) |
    COLLATION <replaceable class="PARAMETER">object_name</replaceable> |
!   COLUMN <replaceable class="PARAMETER">table_name</replaceable>.<replaceable class="PARAMETER">column_name</replaceable> |
    CONSTRAINT <replaceable class="PARAMETER">constraint_name</replaceable> ON <replaceable class="PARAMETER">table_name</replaceable> |
    CONVERSION <replaceable class="PARAMETER">object_name</replaceable> |
    DATABASE <replaceable class="PARAMETER">object_name</replaceable> |
--- 26,32 ----
    AGGREGATE <replaceable class="PARAMETER">agg_name</replaceable> (<replaceable class="PARAMETER">agg_type</replaceable> [, ...] ) |
    CAST (<replaceable>source_type</replaceable> AS <replaceable>target_type</replaceable>) |
    COLLATION <replaceable class="PARAMETER">object_name</replaceable> |
!   COLUMN <replaceable class="PARAMETER">table_or_view_name</replaceable>.<replaceable class="PARAMETER">column_name</replaceable> |
    CONSTRAINT <replaceable class="PARAMETER">constraint_name</replaceable> ON <replaceable class="PARAMETER">table_name</replaceable> |
    CONVERSION <replaceable class="PARAMETER">object_name</replaceable> |
    DATABASE <replaceable class="PARAMETER">object_name</replaceable> |
*************** COMMENT ON
*** 42,48 ****
    OPERATOR FAMILY <replaceable class="PARAMETER">object_name</replaceable> USING <replaceable class="parameter">index_method</replaceable> |
    [ PROCEDURAL ] LANGUAGE <replaceable class="PARAMETER">object_name</replaceable> |
    ROLE <replaceable class="PARAMETER">object_name</replaceable> |
!   RULE <replaceable class="PARAMETER">rule_name</replaceable> ON <replaceable class="PARAMETER">table_name</replaceable> |
    SCHEMA <replaceable class="PARAMETER">object_name</replaceable> |
    SEQUENCE <replaceable class="PARAMETER">object_name</replaceable> |
    SERVER <replaceable class="PARAMETER">object_name</replaceable> |
--- 42,48 ----
    OPERATOR FAMILY <replaceable class="PARAMETER">object_name</replaceable> USING <replaceable class="parameter">index_method</replaceable> |
    [ PROCEDURAL ] LANGUAGE <replaceable class="PARAMETER">object_name</replaceable> |
    ROLE <replaceable class="PARAMETER">object_name</replaceable> |
!   RULE <replaceable class="PARAMETER">rule_name</replaceable> ON <replaceable class="PARAMETER">table_or_view_name</replaceable> |
    SCHEMA <replaceable class="PARAMETER">object_name</replaceable> |
    SEQUENCE <replaceable class="PARAMETER">object_name</replaceable> |
    SERVER <replaceable class="PARAMETER">object_name</replaceable> |
*************** COMMENT ON
*** 52,58 ****
    TEXT SEARCH DICTIONARY <replaceable class="PARAMETER">object_name</replaceable> |
    TEXT SEARCH PARSER <replaceable class="PARAMETER">object_name</replaceable> |
    TEXT SEARCH TEMPLATE <replaceable class="PARAMETER">object_name</replaceable> |
!   TRIGGER <replaceable class="PARAMETER">trigger_name</replaceable> ON <replaceable class="PARAMETER">table_name</replaceable> |
    TYPE <replaceable class="PARAMETER">object_name</replaceable> |
    VIEW <replaceable class="PARAMETER">object_name</replaceable>
  } IS '<replaceable class="PARAMETER">text</replaceable>'
--- 52,58 ----
    TEXT SEARCH DICTIONARY <replaceable class="PARAMETER">object_name</replaceable> |
    TEXT SEARCH PARSER <replaceable class="PARAMETER">object_name</replaceable> |
    TEXT SEARCH TEMPLATE <replaceable class="PARAMETER">object_name</replaceable> |
!   TRIGGER <replaceable class="PARAMETER">trigger_name</replaceable> ON <replaceable class="PARAMETER">table_or_view_name</replaceable> |
    TYPE <replaceable class="PARAMETER">object_name</replaceable> |
    VIEW <replaceable class="PARAMETER">object_name</replaceable>
  } IS '<replaceable class="PARAMETER">text</replaceable>'
*************** COMMENT ON
*** 97,105 ****
  
    <variablelist>
     <varlistentry>
      <term><replaceable class="parameter">object_name</replaceable></term>
      <term><replaceable class="parameter">table_name.column_name</replaceable></term>
-     <term><replaceable class="parameter">agg_name</replaceable></term>
      <term><replaceable class="parameter">constraint_name</replaceable></term>
      <term><replaceable class="parameter">function_name</replaceable></term>
      <term><replaceable class="parameter">operator_name</replaceable></term>
--- 97,106 ----
  
    <variablelist>
     <varlistentry>
+     <term><replaceable class="parameter">agg_name</replaceable></term>
      <term><replaceable class="parameter">object_name</replaceable></term>
+     <term><replaceable class="parameter">table_or_view_name.column_name</replaceable></term>
      <term><replaceable class="parameter">table_name.column_name</replaceable></term>
      <term><replaceable class="parameter">constraint_name</replaceable></term>
      <term><replaceable class="parameter">function_name</replaceable></term>
      <term><replaceable class="parameter">operator_name</replaceable></term>
diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index 682cf8a..46aae54 100644
*** a/src/bin/psql/describe.c
--- b/src/bin/psql/describe.c
*************** describeOneTableDetails(const char *sche
*** 1295,1302 ****
  		appendPQExpBuffer(&buf, "\n  NULL AS attcollation");
  	if (tableinfo.relkind == 'i')
  		appendPQExpBuffer(&buf, ",\n  pg_catalog.pg_get_indexdef(a.attrelid, a.attnum, TRUE) AS indexdef");
! 	if (verbose)
! 		appendPQExpBuffer(&buf, ",\n  a.attstorage, pg_catalog.col_description(a.attrelid, a.attnum)");
  	appendPQExpBuffer(&buf, "\nFROM pg_catalog.pg_attribute a");
  	appendPQExpBuffer(&buf, "\nWHERE a.attrelid = '%s' AND a.attnum > 0 AND NOT a.attisdropped", oid);
  	appendPQExpBuffer(&buf, "\nORDER BY a.attnum;");
--- 1295,1309 ----
  		appendPQExpBuffer(&buf, "\n  NULL AS attcollation");
  	if (tableinfo.relkind == 'i')
  		appendPQExpBuffer(&buf, ",\n  pg_catalog.pg_get_indexdef(a.attrelid, a.attnum, TRUE) AS indexdef");
! 	if (verbose) {
! 		appendPQExpBuffer(&buf, ",\n  a.attstorage");
! 		/* No descriptions on an index's columns in 9.0+, and column
! 		 * descriptions for sequences don't make sense.
! 		 */
! 		if (tableinfo.relkind != 'i' && tableinfo.relkind != 'S')
! 			appendPQExpBuffer(&buf, ", pg_catalog.col_description(a.attrelid, a.attnum)");
! 	}
! 
  	appendPQExpBuffer(&buf, "\nFROM pg_catalog.pg_attribute a");
  	appendPQExpBuffer(&buf, "\nWHERE a.attrelid = '%s' AND a.attnum > 0 AND NOT a.attisdropped", oid);
  	appendPQExpBuffer(&buf, "\nORDER BY a.attnum;");
*************** describeOneTableDetails(const char *sche
*** 1379,1385 ****
  	if (verbose)
  	{
  		headers[cols++] = gettext_noop("Storage");
! 		headers[cols++] = gettext_noop("Description");
  	}
  
  	printTableInit(&cont, &myopt, title.data, cols, numrows);
--- 1386,1393 ----
  	if (verbose)
  	{
  		headers[cols++] = gettext_noop("Storage");
! 		if (tableinfo.relkind != 'i' && tableinfo.relkind != 'S')
! 			headers[cols++] = gettext_noop("Description");
  	}
  
  	printTableInit(&cont, &myopt, title.data, cols, numrows);
*************** describeOneTableDetails(const char *sche
*** 1471,1478 ****
  										(storage[0] == 'e' ? "external" :
  										 "???")))),
  							  false, false);
! 			printTableAddCell(&cont, PQgetvalue(res, i, firstvcol + 1),
! 							  false, false);
  		}
  	}
  
--- 1479,1487 ----
  										(storage[0] == 'e' ? "external" :
  										 "???")))),
  							  false, false);
! 			if (tableinfo.relkind != 'i' && tableinfo.relkind != 'S')
! 				printTableAddCell(&cont, PQgetvalue(res, i, firstvcol + 1),
! 								  false, false);
  		}
  	}
  
