diff --git a/doc/Wayland/.gitignore b/doc/Wayland/.gitignore
index 33b78ca5..cf787546 100644
--- a/doc/Wayland/.gitignore
+++ b/doc/Wayland/.gitignore
@@ -1 +1,2 @@
Wayland
+en-US/Protocol.xml
diff --git a/doc/Wayland/Makefile.am b/doc/Wayland/Makefile.am
index 854da79b..099efb24 100644
--- a/doc/Wayland/Makefile.am
+++ b/doc/Wayland/Makefile.am
@@ -17,9 +17,13 @@ publican_sources = \
$(srcdir)/en-US/images/x-architecture.png
-Wayland: publican.cfg $(publican_sources)
+Wayland: docbook-xsl publican.cfg $(publican_sources)
publican build --lang en-US --format html,pdf
+# This must be run befor the publican run
+docbook-xsl: $(top_srcdir)/protocol/wayland.xml protocol-to-docbook.xsl
+ $(AM_V_GEN)$(XSLTPROC) protocol-to-docbook.xsl $(top_srcdir)/protocol/wayland.xml > $(srcdir)/en-US/Protocol.xml
+
clean-local:
-rm -rf Wayland
@@ -31,5 +35,6 @@ uninstall-local:
-rm -rf $(DESTDIR)$(docdir)/Wayland/*
-rmdir $(DESTDIR)$(docdir)/Wayland
-EXTRA_DIST = $(publican_sources) publican.cfg
+EXTRA_DIST = $(publican_sources) publican.cfg protocol-to-docbook.xsl
+
endif
diff --git a/doc/Wayland/en-US/Wayland.xml b/doc/Wayland/en-US/Wayland.xml
index acec6820..829d362d 100644
--- a/doc/Wayland/en-US/Wayland.xml
+++ b/doc/Wayland/en-US/Wayland.xml
@@ -10,6 +10,7 @@
-->
+
diff --git a/doc/Wayland/protocol-to-docbook.xsl b/doc/Wayland/protocol-to-docbook.xsl
new file mode 100644
index 00000000..e50d80d9
--- /dev/null
+++ b/doc/Wayland/protocol-to-docbook.xsl
@@ -0,0 +1,113 @@
+
+
+
+
+
+
+
+
+%BOOK_ENTITIES;
+]>
+]]>
+
+
+ Wayland Protocol Specification
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ protocol--
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+ Requests provided by
+
+
+
+
+
+ Events provided by events
+
+
+
+
+
+ Enums provided by enums
+
+
+
+
+
+
+
+
+
+
+
+
+ Type:
+
+
+ Value:
+
+
+
+
+
+
+
+
+
+
+
+ protocol-interface---
+
+ ::
+
+ -
+
+
+
+
+
+ :: arguments
+
+
+
+
+
+ :: values
+
+
+
+
+
+
+
+