diff --git a/src/backend/utils/adt/tsquery_op.c b/src/backend/utils/adt/tsquery_op.c
index 0b81ff59385d0119d68def68a36f750042ca4ff8..03edc7b172f478ab5968937e6365f59f5cc76a99 100644
--- a/src/backend/utils/adt/tsquery_op.c
+++ b/src/backend/utils/adt/tsquery_op.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_op.c,v 1.9 2010/08/03 00:10:39 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_op.c,v 1.10 2010/08/03 01:50:26 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -209,7 +209,7 @@ makeTSQuerySign(TSQuery a)
 	for (i = 0; i < a->size; i++)
 	{
 		if (ptr->type == QI_VAL)
-			sign |= ((TSQuerySign) 1) << (ptr->qoperand.valcrc % TSQS_SIGLEN);
+			sign |= ((TSQuerySign) 1) << (((unsigned int) ptr->qoperand.valcrc) % TSQS_SIGLEN);
 		ptr++;
 	}
 
diff --git a/src/backend/utils/adt/tsquery_util.c b/src/backend/utils/adt/tsquery_util.c
index 5e309fea7cdcec22314b50a2d8cf3ed5fae98481..80e169e430707819562a2bc439e90f3fd2730e8f 100644
--- a/src/backend/utils/adt/tsquery_util.c
+++ b/src/backend/utils/adt/tsquery_util.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_util.c,v 1.14 2010/08/03 00:10:39 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/backend/utils/adt/tsquery_util.c,v 1.15 2010/08/03 01:50:27 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -45,7 +45,7 @@ QT2QTN(QueryItem *in, char *operand)
 	else if (operand)
 	{
 		node->word = operand + in->qoperand.distance;
-		node->sign = 1 << (in->qoperand.valcrc % 32);
+		node->sign = ((uint32) 1) << (((unsigned int) in->qoperand.valcrc) % 32);
 	}
 
 	return node;