diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index f2e5224fc3f18eabad53553d78f18e8760acac99..7fd3ec3fae716820f9682308d0bdf9502b4f23e4 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -4431,7 +4431,7 @@ XmlTableGetValue(TableFuncScanState *state, int colnum,
 	PG_TRY();
 	{
 		/* Set current node as entry point for XPath evaluation */
-		xmlXPathSetContextNode(cur, xtCxt->xpathcxt);
+		xtCxt->xpathcxt->node = cur;
 
 		/* Evaluate column path */
 		xpathobj = xmlXPathCompiledEval(xtCxt->xpathscomp[colnum], xtCxt->xpathcxt);