diff --git a/contrib/tsearch2/query.c b/contrib/tsearch2/query.c
index c812f48b0d63ee4d3d69a520a0127d1d4c960b18..458c55de2798b4a6e7f767a08dc14f4aa9769d9b 100644
--- a/contrib/tsearch2/query.c
+++ b/contrib/tsearch2/query.c
@@ -278,7 +278,7 @@ pushval_morph(QPRS_STATE * state, int typeval, char *strval, int lenval, int2 we
 		pushval_asis(state, VAL, prs.words[count].word, prs.words[count].len, weight);
 		pfree(prs.words[count].word);
 		if (count)
-			pushquery(state, OPR, (int4) '|', 0, 0, 0);
+			pushquery(state, OPR, (int4) '&', 0, 0, 0);
 	}
 	pfree(prs.words);