diff --git a/src/backend/executor/nodeIndexscan.c b/src/backend/executor/nodeIndexscan.c
index b6d6e5ac21e5d8328c8f8fc4aa5ec617e85226ec..347096a20ebc4b3722574b8e3f076ddf38604dc5 100644
--- a/src/backend/executor/nodeIndexscan.c
+++ b/src/backend/executor/nodeIndexscan.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/executor/nodeIndexscan.c,v 1.91 2004/02/03 17:34:02 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/executor/nodeIndexscan.c,v 1.92 2004/02/28 19:46:05 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -669,6 +669,12 @@ ExecInitIndexScan(IndexScan *node, EState *estate)
 
 	/*
 	 * initialize child expressions
+	 *
+	 * Note: we don't initialize all of the indxqual expression, only the
+	 * sub-parts corresponding to runtime keys (see below).  The indxqualorig
+	 * expression is always initialized even though it will only be used in
+	 * some uncommon cases --- would be nice to improve that.  (Problem is
+	 * that any SubPlans present in the expression must be found now...)
 	 */
 	indexstate->ss.ps.targetlist = (List *)
 		ExecInitExpr((Expr *) node->scan.plan.targetlist,
@@ -676,9 +682,6 @@ ExecInitIndexScan(IndexScan *node, EState *estate)
 	indexstate->ss.ps.qual = (List *)
 		ExecInitExpr((Expr *) node->scan.plan.qual,
 					 (PlanState *) indexstate);
-	indexstate->indxqual = (List *)
-		ExecInitExpr((Expr *) node->indxqual,
-					 (PlanState *) indexstate);
 	indexstate->indxqualorig = (List *)
 		ExecInitExpr((Expr *) node->indxqualorig,
 					 (PlanState *) indexstate);
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h
index 50db072f41a10e060b456cdae246d3927b25f174..c919dccea9ab1c4b1adb452389b968947f66f3e5 100644
--- a/src/include/nodes/execnodes.h
+++ b/src/include/nodes/execnodes.h
@@ -7,7 +7,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.111 2004/01/22 02:23:21 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.112 2004/02/28 19:46:06 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -765,8 +765,10 @@ typedef ScanState SeqScanState;
 /* ----------------
  *	 IndexScanState information
  *
+ *		indxqualorig	   execution state for indxqualorig expressions
  *		NumIndices		   number of indices in this scan
  *		IndexPtr		   current index in use
+ *		MarkIndexPtr	   IndexPtr for marked scan point
  *		ScanKeys		   Skey structures to scan index rels
  *		NumScanKeys		   array of no of keys in each Skey struct
  *		RuntimeKeyInfo	   array of array of exprstates for Skeys
@@ -783,7 +785,6 @@ typedef ScanState SeqScanState;
 typedef struct IndexScanState
 {
 	ScanState	ss;				/* its first field is NodeTag */
-	List	   *indxqual;
 	List	   *indxqualorig;
 	int			iss_NumIndices;
 	int			iss_IndexPtr;