diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c
index aa4363b200..a74c16978a 100644
--- a/src/bin/psql/describe.c
+++ b/src/bin/psql/describe.c
@@ -4017,7 +4017,7 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys
 	int			cols_so_far;
 	bool		translate_columns[] = {false, false, true, false, false, false, false, false, false};
 
-	/* If tabtypes is empty, we default to \dtvmsE (but see also command.c) */
+	/* If tabtypes is empty, we default to \dtivmsE (but see also command.c) */
 	if (!(showTables || showIndexes || showViews || showMatViews || showSeq || showForeign))
 		showTables = showViews = showMatViews = showSeq = showForeign = true;
 
@@ -4176,7 +4176,48 @@ listTables(const char *tabtypes, const char *pattern, bool verbose, bool showSys
 	}
 	else
 	{
-		myopt.title = _("List of relations");
+		char title[100] = "List of ";
+		int cntTitle = 0;
+		if (showTables) {
+			strcat(title, "tables");
+			cntTitle++;
+		}
+		if (showIndexes) {
+			if (cntTitle != 0) {
+				strcat(title, ", ");
+			}
+			strcat(title, "indexes");
+			cntTitle++;
+		}
+		if (showViews) {
+			if (cntTitle != 0) {
+				strcat(title, ", ");
+			}
+			strcat(title, "views");
+			cntTitle++;
+		}
+		if (showMatViews) {
+			if (cntTitle != 0) {
+				strcat(title, ", ");
+			}
+			strcat(title, "materialized views");
+			cntTitle++;
+		}
+		if (showSeq) {
+			if (cntTitle != 0) {
+				strcat(title, ", ");
+			}
+			strcat(title, "sequences");
+			cntTitle++;
+		}
+		if (showForeign) {
+			if (cntTitle != 0) {
+				strcat(title, ", ");
+			}
+			strcat(title, "foreign tables");
+			cntTitle++;
+		}
+		myopt.title = _(title);
 		myopt.translate_header = true;
 		myopt.translate_columns = translate_columns;
 		myopt.n_translate_columns = lengthof(translate_columns);
diff --git a/src/bin/psql/help.c b/src/bin/psql/help.c
index da8e1ade5d..daddda0c8d 100644
--- a/src/bin/psql/help.c
+++ b/src/bin/psql/help.c
@@ -235,11 +235,11 @@ slashUsage(unsigned short int pager)
 	HELP0("  \\dd[Sx]  [PATTERN]     show object descriptions not displayed elsewhere\n");
 	HELP0("  \\dD[Sx+] [PATTERN]     list domains\n");
 	HELP0("  \\ddp[x]  [PATTERN]     list default privileges\n");
-	HELP0("  \\dE[Sx+] [PATTERN]     list foreign tables\n");
+	HELP0("  \\dew[x+] [PATTERN]     list foreign-data wrappers\n");
 	HELP0("  \\des[x+] [PATTERN]     list foreign servers\n");
-	HELP0("  \\det[x+] [PATTERN]     list foreign tables\n");
+	HELP0("  \\dE[Sx+] [PATTERN]     list foreign tables (basic info)\n");
+	HELP0("  \\det[x+] [PATTERN]     list foreign tables (foreign info)\n");
 	HELP0("  \\deu[x+] [PATTERN]     list user mappings\n");
-	HELP0("  \\dew[x+] [PATTERN]     list foreign-data wrappers\n");
 	HELP0("  \\df[anptw][Sx+] [FUNCPTRN [TYPEPTRN ...]]\n"
 		  "                         list [only agg/normal/procedure/trigger/window] functions\n");
 	HELP0("  \\dF[x+]  [PATTERN]     list text search configurations\n");
