Index: /trunk/doc/manual/Makefile.kmk
===================================================================
--- /trunk/doc/manual/Makefile.kmk	(revision 56543)
+++ /trunk/doc/manual/Makefile.kmk	(revision 56544)
@@ -674,25 +674,6 @@
 	$(QUIET)$(VBOX_XSLTPROC) $(VBOX_XSLTPROC_OPTS) --xinclude --nonet -o $@ $< $(VBOX_DOC_XIDL_SRC_TMP)
 
-$(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.xml: $(VBOX_PATH_MANUAL_SRC)/en_US/SDKRef.xml $(VBOX_MANUAL_APIREF_TMP)
-	$(call MSG_L1,Pre-processing [2] $(@F) to $@)
-	$(QUIET)$(RM) -f $@ $@.tmp
-	$(QUIET)$(SED) -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \
-	               -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \
-	               -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \
-	               -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \
-	               -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \
-	               -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \
-	               -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \
-	               --output $@.tmp $<
-	$(QUIET)$(SED) -e '1,/<!--@VIRTUALBOX_MAIN_API_REFERENCE@-->/!d' \
-	               -e 's/<!--@VIRTUALBOX_MAIN_API_REFERENCE@-->//' \
-	               --output $@ $@.tmp
-	$(QUIET)$(SED) -e 's/<?xml version=\"1.0\" encoding=\"utf-8\"?>//g' --append $@ $(VBOX_MANUAL_APIREF_TMP)
-	$(QUIET)$(SED) -e '/<!--@VIRTUALBOX_MAIN_API_REFERENCE@-->/,$$!d' \
-	               -e 's/<!--@VIRTUALBOX_MAIN_API_REFERENCE@-->//' --append $@ $@.tmp
-#	$(QUIET)$(MV) -f $@.tmp $@
-	$(QUIET)$(RM) -f -- "$@.tmp"
-	$(call MSG_L1,Validating $@)
-	$(QUIET)$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd  $@
+$(evalcall2 def_vbox_replace_stuff_in_xml,/en_US/SDKRef.xml,/en_US)
+$(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.xml: $(VBOX_MANUAL_APIREF_TMP)
 
 # Turn SDKRef.xml into latex.
@@ -703,4 +684,6 @@
 	$(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@)
 	$(QUIET)$(RM) -f $(addprefix $(@D/),$(VBOX_SDKREF_LATEX_FILES_TARGET))
+#      check it for validity first.
+	$(QUIET)$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $<
 #	generate TeX source from processed docbook and store it in SDKRef.tex.tmp
 	$(QUIET)$(VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG en_US \
Index: /trunk/doc/manual/en_US/SDKRef.xml
===================================================================
--- /trunk/doc/manual/en_US/SDKRef.xml	(revision 56543)
+++ /trunk/doc/manual/en_US/SDKRef.xml	(revision 56544)
@@ -2542,5 +2542,6 @@
   </chapter>
 
-  <!--@VIRTUALBOX_MAIN_API_REFERENCE@-->
+  <xi:include href="SDKRef_apiref.xml" xpointer="xpointer(/book/*)"
+    xmlns:xi="http://www.w3.org/2001/XInclude" />
 
   <chapter id="hgcm">
Index: /trunk/doc/manual/xidl2docbook.xsl
===================================================================
--- /trunk/doc/manual/xidl2docbook.xsl	(revision 56543)
+++ /trunk/doc/manual/xidl2docbook.xsl	(revision 56544)
@@ -102,4 +102,5 @@
 
 <xsl:template match="/idl">
+ <book> <!-- Need a single top-level element for xi:include, we'll skip it using xpointer. -->
   <chapter id="sdkref_classes">
     <title>Classes (interfaces)</title>
@@ -337,5 +338,5 @@
     </xsl:for-each>
   </chapter>
-
+ </book>
 </xsl:template>
 
