diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index dcadba6f127213dd7426f323fc80dc3244bae719..1ad826d18f32dbc181c48a78408a197d33a4538b 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -2120,9 +2120,6 @@ CommitTransaction(void)
 	 */
 	smgrDoPendingDeletes(true);
 
-	/* Check we've released all catcache entries */
-	AtEOXact_CatCache(true);
-
 	AtCommit_Notify();
 	AtEOXact_GUC(true, 1);
 	AtEOXact_SPI(true);
@@ -2391,9 +2388,6 @@ PrepareTransaction(void)
 	 */
 	PostPrepare_Twophase();
 
-	/* Check we've released all catcache entries */
-	AtEOXact_CatCache(true);
-
 	/* PREPARE acts the same as COMMIT as far as GUC is concerned */
 	AtEOXact_GUC(true, 1);
 	AtEOXact_SPI(true);
@@ -2593,7 +2587,6 @@ AbortTransaction(void)
 							 RESOURCE_RELEASE_AFTER_LOCKS,
 							 false, true);
 		smgrDoPendingDeletes(false);
-		AtEOXact_CatCache(false);
 
 		AtEOXact_GUC(false, 1);
 		AtEOXact_SPI(false);
diff --git a/src/backend/utils/cache/catcache.c b/src/backend/utils/cache/catcache.c
index 79114a11f2817b1d08bd1d7af7e39cfff88d36b7..ed72c254cd676cfbef9c81dc2a6a006cdd45d414 100644
--- a/src/backend/utils/cache/catcache.c
+++ b/src/backend/utils/cache/catcache.c
@@ -526,57 +526,6 @@ CreateCacheMemoryContext(void)
 }
 
 
-/*
- *		AtEOXact_CatCache
- *
- * Clean up catcaches at end of main transaction (either commit or abort)
- *
- * As of PostgreSQL 8.1, catcache pins should get released by the
- * ResourceOwner mechanism.  This routine is just a debugging
- * cross-check that no pins remain.
- */
-void
-AtEOXact_CatCache(bool isCommit)
-{
-#ifdef USE_ASSERT_CHECKING
-	slist_iter	cache_iter;
-
-	slist_foreach(cache_iter, &CacheHdr->ch_caches)
-	{
-		CatCache   *ccp = slist_container(CatCache, cc_next, cache_iter.cur);
-		dlist_iter	iter;
-		int			i;
-
-		/* Check CatCLists */
-		dlist_foreach(iter, &ccp->cc_lists)
-		{
-			CatCList   *cl;
-
-			cl = dlist_container(CatCList, cache_elem, iter.cur);
-			Assert(cl->cl_magic == CL_MAGIC);
-			Assert(cl->refcount == 0);
-			Assert(!cl->dead);
-		}
-
-		/* Check individual tuples */
-		for (i = 0; i < ccp->cc_nbuckets; i++)
-		{
-			dlist_head *bucket = &ccp->cc_bucket[i];
-
-			dlist_foreach(iter, bucket)
-			{
-				CatCTup    *ct;
-
-				ct = dlist_container(CatCTup, cache_elem, iter.cur);
-				Assert(ct->ct_magic == CT_MAGIC);
-				Assert(ct->refcount == 0);
-				Assert(!ct->dead);
-			}
-		}
-	}
-#endif
-}
-
 /*
  *		ResetCatalogCache
  *
diff --git a/src/include/utils/catcache.h b/src/include/utils/catcache.h
index a4e00b1ce3668170d7767b6911327641a05a0b4d..9a212797485a20d343f46e9afa6ff9bf49556f48 100644
--- a/src/include/utils/catcache.h
+++ b/src/include/utils/catcache.h
@@ -162,7 +162,6 @@ typedef struct catcacheheader
 extern PGDLLIMPORT MemoryContext CacheMemoryContext;
 
 extern void CreateCacheMemoryContext(void);
-extern void AtEOXact_CatCache(bool isCommit);
 
 extern CatCache *InitCatCache(int id, Oid reloid, Oid indexoid,
 			 int nkeys, const int *key,