diff --git a/contrib/tsearch2/query.c b/contrib/tsearch2/query.c
index 8ed66460baa9a79ce944be4015e7c7ccd26a7fd3..9be5f451fa8658e6dc92e8be029a0bd24915f492 100644
--- a/contrib/tsearch2/query.c
+++ b/contrib/tsearch2/query.c
@@ -748,7 +748,7 @@ infix(INFIX * in, bool first)
 		{
 			if ( t_iseq(op, '\'') )
 			{
-				*(in->cur) = '\'';
+				*(in->cur) = '\\';
 				in->cur++;
 			}
 			COPYCHAR(in->cur,op);
diff --git a/contrib/tsearch2/tsvector.c b/contrib/tsearch2/tsvector.c
index d274f01256e1dad15b5b15c8e02ddd5481c42df2..0f369bdcb7e88b56b883d1355e4ba78d03030f79 100644
--- a/contrib/tsearch2/tsvector.c
+++ b/contrib/tsearch2/tsvector.c
@@ -529,7 +529,7 @@ tsvector_out(PG_FUNCTION_ARGS)
 
 				outbuf = (char *) repalloc((void *) outbuf, ++lenbuf);
 				curout = outbuf + pos;
-				*curout++ = '\'';
+				*curout++ = '\\';
 			}
 			while(len--)
 				*curout++ = *curin++;