diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index ca057c7f2fa5119dbf8aa469e86705f51650b31c..1a5c3b3c3bd775563e3665a8f893be333d89b722 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.263 2006/03/05 15:58:22 momjian Exp $
+ *	  $PostgreSQL: pgsql/src/backend/catalog/index.c,v 1.264 2006/03/24 23:02:17 tgl Exp $
  *
  *
  * INTERFACE ROUTINES
@@ -1473,7 +1473,9 @@ IndexBuildHeapScan(Relation heapRelation,
 
 					/*
 					 * If tuple is recently deleted then we must index it
-					 * anyway to keep VACUUM from complaining.
+					 * anyway to preserve MVCC semantics.  (Pre-existing
+					 * transactions could try to use the index after we
+					 * finish building it, and may need to see such tuples.)
 					 */
 					indexIt = true;
 					tupleIsAlive = false;
@@ -1541,13 +1543,10 @@ IndexBuildHeapScan(Relation heapRelation,
 
 		/*
 		 * In a partial index, discard tuples that don't satisfy the
-		 * predicate.  We can also discard recently-dead tuples, since VACUUM
-		 * doesn't complain about tuple count mismatch for partial indexes.
+		 * predicate.
 		 */
 		if (predicate != NIL)
 		{
-			if (!tupleIsAlive)
-				continue;
 			if (!ExecQual(predicate, econtext, false))
 				continue;
 		}