diff --git a/src/backend/storage/buffer/buf_init.c b/src/backend/storage/buffer/buf_init.c
index c16988fc1192b8d528f4db3d2ff7b0840ee4a71b..1dacabacc88d34237af1676cab19980e3eb9cbcc 100644
--- a/src/backend/storage/buffer/buf_init.c
+++ b/src/backend/storage/buffer/buf_init.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *    $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_init.c,v 1.5 1997/01/23 18:14:40 momjian Exp $
+ *    $Header: /cvsroot/pgsql/src/backend/storage/buffer/buf_init.c,v 1.6 1997/01/25 21:01:16 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -136,7 +136,10 @@ InitBufferPool(IPCKey key)
     int i;
     
     /* check padding of BufferDesc and BufferHdr */
-    if (sizeof(struct sbufdesc) != PADDED_SBUFDESC_SIZE)
+    /* we need both checks because a sbufdesc_padded > PADDED_SBUFDESC_SIZE
+       will shrink sbufdesc to the required size, which is bad */
+    if (sizeof(struct sbufdesc) != PADDED_SBUFDESC_SIZE ||
+	sizeof(struct sbufdesc_padded) > PADDED_SBUFDESC_SIZE)
     	elog(WARN,"Internal error:  sbufdesc does not have the proper size, "
 				"contact the Postgres developers");
     if (sizeof(struct sbufdesc_unpadded) <= PADDED_SBUFDESC_SIZE/2)