diff --git a/src/test/regress/expected/xml.out b/src/test/regress/expected/xml.out
index f7a8c38bdeaf67014fd6690201a9f7ed28ce27a2..7fa13091087eb01f306aeea81f2a9cf47777a85d 100644
--- a/src/test/regress/expected/xml.out
+++ b/src/test/regress/expected/xml.out
@@ -677,11 +677,12 @@ DECLARE
   degree_symbol text;
   res xml[];
 BEGIN
-  -- Per the documentation, xpath() doesn't work on non-ASCII data when
-  -- the server encoding is not UTF8.  The EXCEPTION block below,
-  -- currently dead code, will be relevant if we remove this limitation.
+  -- Per the documentation, except when the server encoding is UTF8, xpath()
+  -- may not work on non-ASCII data.  The untranslatable_character and
+  -- undefined_function traps below, currently dead code, will become relevant
+  -- if we remove this limitation.
   IF current_setting('server_encoding') <> 'UTF8' THEN
-    RAISE LOG 'skip: encoding % unsupported for xml',
+    RAISE LOG 'skip: encoding % unsupported for xpath',
       current_setting('server_encoding');
     RETURN;
   END IF;
@@ -696,9 +697,12 @@ BEGIN
   END IF;
 EXCEPTION
   -- character with byte sequence 0xc2 0xb0 in encoding "UTF8" has no equivalent in encoding "LATIN8"
-  WHEN untranslatable_character THEN RAISE LOG 'skip: %', SQLERRM;
+  WHEN untranslatable_character
   -- default conversion function for encoding "UTF8" to "MULE_INTERNAL" does not exist
-  WHEN undefined_function THEN RAISE LOG 'skip: %', SQLERRM;
+  OR undefined_function
+  -- unsupported XML feature
+  OR feature_not_supported THEN
+    RAISE LOG 'skip: %', SQLERRM;
 END
 $$;
 -- Test xmlexists and xpath_exists
diff --git a/src/test/regress/expected/xml_1.out b/src/test/regress/expected/xml_1.out
index 1a9efa2ea02270ee10383ebcd6b967dde76cc67c..970ab26fcef1604ae6bbcf2a296648a8175b0c67 100644
--- a/src/test/regress/expected/xml_1.out
+++ b/src/test/regress/expected/xml_1.out
@@ -583,11 +583,12 @@ DECLARE
   degree_symbol text;
   res xml[];
 BEGIN
-  -- Per the documentation, xpath() doesn't work on non-ASCII data when
-  -- the server encoding is not UTF8.  The EXCEPTION block below,
-  -- currently dead code, will be relevant if we remove this limitation.
+  -- Per the documentation, except when the server encoding is UTF8, xpath()
+  -- may not work on non-ASCII data.  The untranslatable_character and
+  -- undefined_function traps below, currently dead code, will become relevant
+  -- if we remove this limitation.
   IF current_setting('server_encoding') <> 'UTF8' THEN
-    RAISE LOG 'skip: encoding % unsupported for xml',
+    RAISE LOG 'skip: encoding % unsupported for xpath',
       current_setting('server_encoding');
     RETURN;
   END IF;
@@ -602,15 +603,14 @@ BEGIN
   END IF;
 EXCEPTION
   -- character with byte sequence 0xc2 0xb0 in encoding "UTF8" has no equivalent in encoding "LATIN8"
-  WHEN untranslatable_character THEN RAISE LOG 'skip: %', SQLERRM;
+  WHEN untranslatable_character
   -- default conversion function for encoding "UTF8" to "MULE_INTERNAL" does not exist
-  WHEN undefined_function THEN RAISE LOG 'skip: %', SQLERRM;
+  OR undefined_function
+  -- unsupported XML feature
+  OR feature_not_supported THEN
+    RAISE LOG 'skip: %', SQLERRM;
 END
 $$;
-ERROR:  unsupported XML feature
-DETAIL:  This functionality requires the server to be built with libxml support.
-HINT:  You need to rebuild PostgreSQL using --with-libxml.
-CONTEXT:  PL/pgSQL function inline_code_block line 17 at assignment
 -- Test xmlexists and xpath_exists
 SELECT xmlexists('//town[text() = ''Toronto'']' PASSING BY REF '<towns><town>Bidford-on-Avon</town><town>Cwmbran</town><town>Bristol</town></towns>');
 ERROR:  unsupported XML feature
diff --git a/src/test/regress/expected/xml_2.out b/src/test/regress/expected/xml_2.out
index 3868da1a0d53dda68d15c431ddb36d43b0286d19..112ebe47cd0da3d6deb3ed8c63f23df4f5eff422 100644
--- a/src/test/regress/expected/xml_2.out
+++ b/src/test/regress/expected/xml_2.out
@@ -657,11 +657,12 @@ DECLARE
   degree_symbol text;
   res xml[];
 BEGIN
-  -- Per the documentation, xpath() doesn't work on non-ASCII data when
-  -- the server encoding is not UTF8.  The EXCEPTION block below,
-  -- currently dead code, will be relevant if we remove this limitation.
+  -- Per the documentation, except when the server encoding is UTF8, xpath()
+  -- may not work on non-ASCII data.  The untranslatable_character and
+  -- undefined_function traps below, currently dead code, will become relevant
+  -- if we remove this limitation.
   IF current_setting('server_encoding') <> 'UTF8' THEN
-    RAISE LOG 'skip: encoding % unsupported for xml',
+    RAISE LOG 'skip: encoding % unsupported for xpath',
       current_setting('server_encoding');
     RETURN;
   END IF;
@@ -676,9 +677,12 @@ BEGIN
   END IF;
 EXCEPTION
   -- character with byte sequence 0xc2 0xb0 in encoding "UTF8" has no equivalent in encoding "LATIN8"
-  WHEN untranslatable_character THEN RAISE LOG 'skip: %', SQLERRM;
+  WHEN untranslatable_character
   -- default conversion function for encoding "UTF8" to "MULE_INTERNAL" does not exist
-  WHEN undefined_function THEN RAISE LOG 'skip: %', SQLERRM;
+  OR undefined_function
+  -- unsupported XML feature
+  OR feature_not_supported THEN
+    RAISE LOG 'skip: %', SQLERRM;
 END
 $$;
 -- Test xmlexists and xpath_exists
diff --git a/src/test/regress/sql/xml.sql b/src/test/regress/sql/xml.sql
index fdb51c9edecff7728df817a7c986b76a0788f708..cb96e1800539f12f90c6b3c07717ef8551847526 100644
--- a/src/test/regress/sql/xml.sql
+++ b/src/test/regress/sql/xml.sql
@@ -196,11 +196,12 @@ DECLARE
   degree_symbol text;
   res xml[];
 BEGIN
-  -- Per the documentation, xpath() doesn't work on non-ASCII data when
-  -- the server encoding is not UTF8.  The EXCEPTION block below,
-  -- currently dead code, will be relevant if we remove this limitation.
+  -- Per the documentation, except when the server encoding is UTF8, xpath()
+  -- may not work on non-ASCII data.  The untranslatable_character and
+  -- undefined_function traps below, currently dead code, will become relevant
+  -- if we remove this limitation.
   IF current_setting('server_encoding') <> 'UTF8' THEN
-    RAISE LOG 'skip: encoding % unsupported for xml',
+    RAISE LOG 'skip: encoding % unsupported for xpath',
       current_setting('server_encoding');
     RETURN;
   END IF;
@@ -215,9 +216,12 @@ BEGIN
   END IF;
 EXCEPTION
   -- character with byte sequence 0xc2 0xb0 in encoding "UTF8" has no equivalent in encoding "LATIN8"
-  WHEN untranslatable_character THEN RAISE LOG 'skip: %', SQLERRM;
+  WHEN untranslatable_character
   -- default conversion function for encoding "UTF8" to "MULE_INTERNAL" does not exist
-  WHEN undefined_function THEN RAISE LOG 'skip: %', SQLERRM;
+  OR undefined_function
+  -- unsupported XML feature
+  OR feature_not_supported THEN
+    RAISE LOG 'skip: %', SQLERRM;
 END
 $$;