diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c
index fc551d654597cd838953ed069f84521876235b57..c84d119ad78a9dd96d1e2fce60d2a21572a4a335 100644
--- a/src/backend/tcop/postgres.c
+++ b/src/backend/tcop/postgres.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.362 2003/09/02 19:04:12 tgl Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/tcop/postgres.c,v 1.363 2003/09/14 00:03:32 tgl Exp $
  *
  * NOTES
  *	  this is the "main" module of the postgres backend and
@@ -1753,17 +1753,18 @@ finish_xact_command(void)
 		/* Cancel any active statement timeout before committing */
 		disable_sig_alarm(true);
 
-#ifdef MEMORY_CONTEXT_CHECKING
-		/* Check memory before committing (since commit discards much) */
-		MemoryContextCheck(TopMemoryContext);
-#endif
-
 		/* Now commit the command */
 		ereport(DEBUG3,
 				(errmsg_internal("CommitTransactionCommand")));
 
 		CommitTransactionCommand();
 
+#ifdef MEMORY_CONTEXT_CHECKING
+		/* Check all memory contexts that weren't freed during commit */
+		/* (those that were, were checked before being deleted) */
+		MemoryContextCheck(TopMemoryContext);
+#endif
+
 #ifdef SHOW_MEMORY_STATS
 		/* Print mem stats after each commit for leak tracking */
 		if (ShowStats)
@@ -2657,7 +2658,7 @@ PostgresMain(int argc, char *argv[], const char *username)
 	if (!IsUnderPostmaster)
 	{
 		puts("\nPOSTGRES backend interactive interface ");
-		puts("$Revision: 1.362 $ $Date: 2003/09/02 19:04:12 $\n");
+		puts("$Revision: 1.363 $ $Date: 2003/09/14 00:03:32 $\n");
 	}
 
 	/*