diff --git a/src/backend/parser/parse_target.c b/src/backend/parser/parse_target.c
index ec9a578f1b286824f6284d8576d24cd2fbaec33b..50b94a23a48dd99b55e4d524a6ea7c2a56330fb4 100644
--- a/src/backend/parser/parse_target.c
+++ b/src/backend/parser/parse_target.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.23 1998/08/25 03:17:28 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_target.c,v 1.24 1998/08/25 03:22:49 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -498,12 +498,14 @@ printf("transformTargetList: decode T_Attr\n");
 	resname = (res->name) ? res->name : strVal(lfirst(attrs));
 	if (pstate->p_is_insert || pstate->p_is_update)
 	{
+		Relation rd;
 		/*
 		 * insert or update query -- insert, update work only on one
 		 * relation, so multiple occurence of same resdomno is bogus
 		 */
-		relid = refnameRangeTableEntry(pstate, att->relname)->relid;
-		resdomno = get_attnum(relid, attrname);
+		rd = pstate->p_target_relation;
+		Assert(rd != NULL);
+		resdomno = attnameAttNum(rd, res->name);
 	}
 	else
 		resdomno  = pstate->p_last_resno++;