diff --git a/contrib/fulltextindex/fti.c b/contrib/fulltextindex/fti.c
index be4522321d7a2149f0148f46dbcaec394929d970..a98fcd47dc7a86be4d71f0552f4d75021b5a198f 100644
--- a/contrib/fulltextindex/fti.c
+++ b/contrib/fulltextindex/fti.c
@@ -351,10 +351,9 @@ is_stopword(char *text)
 	StopLow = &StopWords[0];	/* initialize stuff for binary search */
 	StopHigh = endof(StopWords);
 
-	if (lengthof(StopWords) == 0)
-		return false;
+	/* Loop invariant: *StopLow <= text < *StopHigh */
 
-	while (StopLow <= StopHigh)
+	while (StopLow < StopHigh)
 	{
 		StopMiddle = StopLow + (StopHigh - StopLow) / 2;
 		difference = strcmp(*StopMiddle, text);
@@ -363,7 +362,7 @@ is_stopword(char *text)
 		else if (difference < 0)
 			StopLow = StopMiddle + 1;
 		else
-			StopHigh = StopMiddle - 1;
+			StopHigh = StopMiddle;
 	}
 
 	return (false);