diff --git a/src/bin/psql/crosstabview.c b/src/bin/psql/crosstabview.c
index cbe8ddff55a854798473e8cfaed3393679a6a1fe..b283c24e3c28f69c63921c3c06e108e1c821bb1c 100644
--- a/src/bin/psql/crosstabview.c
+++ b/src/bin/psql/crosstabview.c
@@ -122,7 +122,7 @@ PrintResultsInCrosstab(const PGresult *res)
 
 	if (PQresultStatus(res) != PGRES_TUPLES_OK)
 	{
-		psql_error("\\crosstabview: query must return results to be shown in crosstab\n");
+		psql_error("\\crosstabview: statement did not return a result set\n");
 		goto error_return;
 	}
 
@@ -643,7 +643,8 @@ indexOfColumn(char *arg, const PGresult *res)
 		idx = atoi(arg) - 1;
 		if (idx < 0 || idx >= PQnfields(res))
 		{
-			psql_error("\\crosstabview: invalid column number: \"%s\"\n", arg);
+			psql_error("\\crosstabview: column number %d is out of range 1..%d\n",
+					   idx + 1, PQnfields(res));
 			return -1;
 		}
 	}
diff --git a/src/test/regress/expected/psql_crosstab.out b/src/test/regress/expected/psql_crosstab.out
index f45e726132679153b7a604d03bde6003a6e48687..9be36c448019dc1a5f3768df82fc518da43fe3b8 100644
--- a/src/test/regress/expected/psql_crosstab.out
+++ b/src/test/regress/expected/psql_crosstab.out
@@ -188,7 +188,7 @@ SELECT 1 as "22", 2 as b, 3 as "Foo"
 -- error: bad column number
 SELECT v,h,i,c FROM ctv_data
  \crosstabview 2 1 5
-\crosstabview: invalid column number: "5"
+\crosstabview: column number 5 is out of range 1..4
 -- error: same H and V columns
 SELECT v,h,i,c FROM ctv_data
  \crosstabview 2 h 4