diff --git a/src/backend/storage/freespace/freespace.c b/src/backend/storage/freespace/freespace.c
index f666ce9f69ed0fd725681ed817d49b07785ad42d..d0f289a29c1797afaf79b919684a36a597bd6ad3 100644
--- a/src/backend/storage/freespace/freespace.c
+++ b/src/backend/storage/freespace/freespace.c
@@ -8,7 +8,7 @@
  * Portions Copyright (c) 1994, Regents of the University of California
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/storage/freespace/freespace.c,v 1.39 2005/03/14 20:15:09 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/backend/storage/freespace/freespace.c,v 1.40 2005/04/23 15:20:39 momjian Exp $
  *
  *
  * NOTES:
@@ -699,6 +699,7 @@ PrintFreeSpaceMapStatistics(int elevel)
 		 fsmrel != NULL;
 		 fsmrel = fsmrel->nextPhysical)
 		storedPages += fsmrel->storedPages;
+
 	/* Copy other stats before dropping lock */
 	numRels = FreeSpaceMap->numRels;
 	sumRequests = FreeSpaceMap->sumRequests;
@@ -708,11 +709,20 @@ PrintFreeSpaceMapStatistics(int elevel)
 	needed = (sumRequests + numRels) * CHUNKPAGES;
 
 	ereport(elevel,
-			(errmsg("free space map: %d relations, %d pages stored; %.0f total pages used",
-					numRels, storedPages, needed),
-			 errdetail("FSM size: %d relations + %d pages = %.0f kB shared memory.",
-					   MaxFSMRelations, MaxFSMPages,
-					   (double) FreeSpaceShmemSize() / 1024.0)));
+			(errmsg("free space map contains information about:")));
+
+	ereport(elevel,
+			(errmsg("%d relations, limit %d relations",
+					numRels, MaxFSMRelations)));
+
+	ereport(elevel,
+			(errmsg("%d pages with free space, %.0f pages (with overhead)",
+					storedPages, Min(needed, MaxFSMPages))));
+
+	ereport(elevel,
+			(errmsg("%.0f pages required to track all freespace, limit %d pages (%.0f kB)",
+					needed, MaxFSMPages,
+				   (double) FreeSpaceShmemSize() / 1024.0)));
 
 	CheckFreeSpaceMapStatistics(NOTICE, numRels, needed);
 	/* Print to server logs too because is deals with a config variable. */