diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index 9d4e402ae20cfbf7129080f14e8df975b60f3e46..bccea5fa1737b7bc43ff5917166f4ade325c937e 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.235 2006/01/08 20:04:41 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.236 2006/01/19 00:27:08 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1795,8 +1795,6 @@ RelationCacheInvalidate(void)
 		}
 	}
 
-	rebuildList = list_concat(rebuildFirstList, rebuildList);
-
 	/*
 	 * Now zap any remaining smgr cache entries.  This must happen before we
 	 * start to rebuild entries, since that may involve catalog fetches which
@@ -1805,6 +1803,12 @@ RelationCacheInvalidate(void)
 	smgrcloseall();
 
 	/* Phase 2: rebuild the items found to need rebuild in phase 1 */
+	foreach(l, rebuildFirstList)
+	{
+		relation = (Relation) lfirst(l);
+		RelationClearRelation(relation, true);
+	}
+	list_free(rebuildFirstList);
 	foreach(l, rebuildList)
 	{
 		relation = (Relation) lfirst(l);