diff --git a/contrib/Makefile b/contrib/Makefile
index c55c95ccf01e732cad34a57a2a0f901f43da2719..b9453dad7e7a6b8a24928ba919d954e23fc73bdd 100644
--- a/contrib/Makefile
+++ b/contrib/Makefile
@@ -1,4 +1,4 @@
-# $PostgreSQL: pgsql/contrib/Makefile,v 1.82 2007/11/13 21:04:45 tgl Exp $
+# $PostgreSQL: pgsql/contrib/Makefile,v 1.83 2008/05/08 16:49:36 tgl Exp $
 
 subdir = contrib
 top_builddir = ..
@@ -46,10 +46,8 @@ WANTED_DIRS += uuid-ossp
 endif
 
 ifeq ($(with_libxml),yes)
-ifeq ($(with_libxslt),yes)
 WANTED_DIRS += xml2
 endif
-endif
 
 # Missing:
 #		start-scripts	\ (does not have a makefile)
diff --git a/contrib/xml2/Makefile b/contrib/xml2/Makefile
index 0f9c51b116cb1d99aa750307e1e54e7cb8fc3e17..b96defa5d604f88c44b4945c84323f78c4418335 100644
--- a/contrib/xml2/Makefile
+++ b/contrib/xml2/Makefile
@@ -1,18 +1,14 @@
-# $PostgreSQL: pgsql/contrib/xml2/Makefile,v 1.11 2007/11/10 23:59:52 momjian Exp $
+# $PostgreSQL: pgsql/contrib/xml2/Makefile,v 1.12 2008/05/08 16:49:37 tgl Exp $
 
 MODULE_big = pgxml
 
-# Remove xslt_proc.o from the following line if you don't have libxslt
-OBJS = xpath.o xslt_proc.o
+OBJS = $(if $(filter -lxslt, $(LIBS)), xpath.o xslt_proc.o, xpath.o)
 
-# Remove -lxslt from the following line if you don't have libxslt.
-SHLIB_LINK = -lxslt -lxml2
+SHLIB_LINK += $(filter -lxslt, $(LIBS)) $(filter -lxml2, $(LIBS))
 
 DATA_built = pgxml.sql
 DATA = uninstall_pgxml.sql
 
-override CFLAGS += $(shell xml2-config --cflags)
-
 ifdef USE_PGXS
 PG_CONFIG = pg_config
 PGXS := $(shell $(PG_CONFIG) --pgxs)
diff --git a/contrib/xml2/xslt_proc.c b/contrib/xml2/xslt_proc.c
index f498192426098a10713a9c0b25b08c07b3e32356..b2349aaace7ec2cb64c10a213f9812da23f71dc5 100644
--- a/contrib/xml2/xslt_proc.c
+++ b/contrib/xml2/xslt_proc.c
@@ -119,7 +119,7 @@ xslt_process(PG_FUNCTION_ARGS)
 	if (resstat < 0)
 		PG_RETURN_NULL();
 
-	PG_RETURN_TEXT_P(cstring_to_text_with_len(resstr, reslen));
+	PG_RETURN_TEXT_P(cstring_to_text_with_len((char *) resstr, reslen));
 }
 
 
diff --git a/doc/src/sgml/xml2.sgml b/doc/src/sgml/xml2.sgml
index 96f8b18d876411134b0cffe9f30a10a801308479..b1caba0a554a76a1f55ff46122cfad722856a616 100644
--- a/doc/src/sgml/xml2.sgml
+++ b/doc/src/sgml/xml2.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/xml2.sgml,v 1.4 2007/12/06 04:12:10 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/xml2.sgml,v 1.5 2008/05/08 16:49:37 tgl Exp $ -->
 
 <sect1 id="xml2">
  <title>xml2</title>
@@ -374,9 +374,7 @@ WHERE t.author_id = p.person_id;
   <title>XSLT functions</title>
 
   <para>
-   The following functions are available if libxslt is installed (this is
-   not currently detected automatically, so you will have to amend the
-   Makefile):
+   The following functions are available if libxslt is installed:
   </para>
 
   <sect3>