diff --git a/src/backend/parser/parse_expr.c b/src/backend/parser/parse_expr.c
index b1bf7d3a95f5246f48fc3d149f796b45d56ee3be..6dab88c12cda98366ee6da450b25d40f966e6c8f 100644
--- a/src/backend/parser/parse_expr.c
+++ b/src/backend/parser/parse_expr.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.8 1998/01/19 05:06:18 momjian Exp $
+ *	  $Header: /cvsroot/pgsql/src/backend/parser/parse_expr.c,v 1.9 1998/01/19 05:48:36 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -277,12 +277,14 @@ transformExpr(ParseState *pstate, Node *expr, int precedence)
 					{
 						Node	   *lexpr = transformExpr(pstate, lfirst(elist), precedence);
 						Node	   *rexpr = lfirst(right_expr);
+						TargetEntry *tent = (TargetEntry *)rexpr;
 						Expr	   *op_expr;						
 
-						op_expr = make_op(op, lexpr, rexpr);
+						op_expr = make_op(op, lexpr, tent->expr);
 						sublink->oper = lappend(sublink->oper, op_expr->oper);
 						right_expr = lnext(right_expr);
 					}
+					result = (Node *) expr;
 				}
 				break;
 			}
@@ -382,6 +384,9 @@ exprType(Node *expr)
 		case T_Param:
 			type = ((Param *) expr)->paramtype;
 			break;
+		case T_SubLink:
+			type = BOOLOID;
+			break;
 		case T_Ident:
 			/* is this right? */
 			type = UNKNOWNOID;
diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
index 6ad51713a37bf377a10cc1f4ba8a928d7a40f1b1..611073823233bd149dfc67ca4f84fb8ec3ea3814 100644
--- a/src/include/storage/s_lock.h
+++ b/src/include/storage/s_lock.h
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.17 1998/01/17 23:33:14 scrappy Exp $
+ *	  $Header: /cvsroot/pgsql/src/include/storage/s_lock.h,v 1.18 1998/01/19 05:48:55 momjian Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -315,7 +315,7 @@ again:
 							slock_t		_res; \
 							do \
 							{ \
-				__asm__("lock xchgb %0,%1": "=q"(_res), "=m"(*lock):"0"(0x1)); \
+				__asm__("xchgb %0,%1": "=q"(_res), "=m"(*lock):"0"(0x1)); \
 							} while (_res != 0); \
 						} while (0)
 #endif