diff --git a/src/backend/executor/execUtils.c b/src/backend/executor/execUtils.c
index 91baffb4e780f32643aae6ecf18df0f76ffe28b1..fe76a3377477e250028a9e0d81d25bccb81a3af7 100644
--- a/src/backend/executor/execUtils.c
+++ b/src/backend/executor/execUtils.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/executor/execUtils.c,v 1.148 2007/07/27 19:09:04 neilc Exp $
+ *	  $PostgreSQL: pgsql/src/backend/executor/execUtils.c,v 1.149 2007/07/31 16:36:07 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -816,15 +816,14 @@ ExecOpenScanRelation(EState *estate, Index scanrelid)
 	LOCKMODE	lockmode;
 
 	/*
-	 * Determine the lock type we need.  First, scan to see if target
-	 * relation is a result relation.
+	 * Determine the lock type we need.  First, scan to see if target relation
+	 * is a result relation.  If not, check if it's a FOR UPDATE/FOR SHARE
+	 * relation.  In either of those cases, we got the lock already.
 	 */
 	lockmode = AccessShareLock;
 	if (ExecRelationIsTargetRelation(estate, scanrelid))
 		lockmode = NoLock;
-
-	/* If not, check if it's a FOR UPDATE/FOR SHARE relation */
-	if (lockmode == AccessShareLock)
+	else
 	{
 		ListCell   *l;