Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/VERSION
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/VERSION	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/VERSION	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -12,5 +12,5 @@
 <xsl:param name="PreviousReleaseRevision">6553</xsl:param>
 <xsl:param name="Revision">$Revision$</xsl:param>
-<xsl:param name="VersionFileURL">$URL: https://svn.sourceforge.net/svnroot/docbook/trunk/xsl/VERSION $</xsl:param>
+<xsl:param name="VersionFileURL">$URL: https://docbook.svn.sourceforge.net/svnroot/docbook/trunk/xsl/VERSION $</xsl:param>
 <xsl:param name="sf-relid" select="0"/>
 <xsl:strip-space elements="fm:*"/>
@@ -19,5 +19,5 @@
   <fm:Project>DocBook</fm:Project>
   <fm:Branch>XSL Stylesheets</fm:Branch>
-  <fm:Version>snapshot_6933</fm:Version>
+  <fm:Version>snapshot_7094</fm:Version>
 <!--
   <fm:License>MIT/X Consortium License</fm:License>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/common.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/common.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/common.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -15,36 +15,22 @@
      copyright and other information.
 
-     This file contains general templates common to both the HTML and FO
-     versions of the DocBook stylesheets.
      ******************************************************************** -->
 
-<doc:reference xmlns="">
-<referenceinfo>
-<releaseinfo role="meta">
-$Id$
-</releaseinfo>
-<author><surname>Walsh</surname>
-<firstname>Norman</firstname></author>
-<copyright><year>1999-2007</year>
-<holder>Norman Walsh</holder>
-</copyright>
-</referenceinfo>
-<title>Common Template Reference</title>
-
-<partintro id="partintro">
-<title>Introduction</title>
-
-<para>This is technical reference documentation for the “common”
-templates in the DocBook XSL Stylesheets. The common templates are
-“common” because they are shared across output formats (that is,
-they’re not output-format-dependent).</para>
-
-<para>This documentation is not intended to be <quote>user</quote>
-documentation.  It is provided for developers writing
-customization layers for the stylesheets, and for anyone who's
-interested in <quote>how it works</quote>.</para>
-
-</partintro>
-
+<doc:reference xmlns="" xml:id="base">
+  <info>
+    <title>Common » Base Template Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <!-- * yes, partintro is a valid child of a reference... -->
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is technical reference documentation for the “base”
+      set of common templates in the DocBook XSL Stylesheets.</para>
+    <para>This is not intended to be user documentation. It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+  </partintro>
 </doc:reference>
 
@@ -184,5 +170,5 @@
 <refdescription id="section.level-desc">
 <para>This template calculates the hierarchical level of a section.
-The element <sgmltag>sect1</sgmltag> is at level 1, <sgmltag>sect2</sgmltag> is
+The element <tag>sect1</tag> is at level 1, <tag>sect2</tag> is
 at level 2, etc.</para>
 
@@ -1325,25 +1311,7 @@
 <!-- ====================================================================== -->
 <!-- OrderedList Numeration -->
-
-<xsl:template name="orderedlist-starting-number">
-  <xsl:param name="list" select="."/>
-
-  <!-- Need a neutral dbxxx -->
-  <xsl:variable name="pi-html-start">
-    <xsl:call-template name="pi-attribute">
-      <xsl:with-param name="pis"
-                      select="$list/processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'start'"/>
-    </xsl:call-template>
-  </xsl:variable>
-
-  <xsl:variable name="pi-fo-start">
-    <xsl:call-template name="pi-attribute">
-      <xsl:with-param name="pis"
-                      select="$list/processing-instruction('dbfo')"/>
-      <xsl:with-param name="attribute" select="'start'"/>
-    </xsl:call-template>
-  </xsl:variable>
-
+<xsl:template name="output-orderedlist-starting-number">
+  <xsl:param name="list"/>
+  <xsl:param name="pi-start"/>
   <xsl:choose>
     <xsl:when test="not($list/@continuation = 'continues')">
@@ -1352,9 +1320,6 @@
           <xsl:value-of select="@startingnumber"/>
         </xsl:when>
-        <xsl:when test="$pi-html-start != ''">
-          <xsl:value-of select="$pi-html-start"/>
-        </xsl:when>
-        <xsl:when test="$pi-fo-start != ''">
-          <xsl:value-of select="$pi-fo-start"/>
+        <xsl:when test="$pi-start != ''">
+          <xsl:value-of select="$pi-start"/>
         </xsl:when>
         <xsl:otherwise>1</xsl:otherwise>
@@ -1363,5 +1328,5 @@
     <xsl:otherwise>
       <xsl:variable name="prevlist"
-                    select="$list/preceding::orderedlist[1]"/>
+        select="$list/preceding::orderedlist[1]"/>
       <xsl:choose>
         <xsl:when test="count($prevlist) = 0">2</xsl:when>
@@ -1383,5 +1348,4 @@
   <!-- context node must be a listitem in an orderedlist -->
   <xsl:param name="node" select="."/>
-
   <xsl:choose>
     <xsl:when test="$node/@override">
@@ -1904,11 +1868,9 @@
     the final item in an inline list (though it could also be useful
     for generating choice separators for non-inline lists).</para>
-
     <para>It currently works by evaluating a processing instruction
     (PI) of the form &lt;?dbchoice&#xa0;choice="foo"?> :
-
     <itemizedlist>
       <listitem>
-        <simpara>if the value of the <sgmltag>choice</sgmltag>
+        <simpara>if the value of the <tag>choice</tag>
         pseudo-attribute is "and" or "or", returns a localized "and"
         or "or"</simpara>
@@ -1916,8 +1878,7 @@
       <listitem>
         <simpara>otherwise returns the literal value of the
-        <sgmltag>choice</sgmltag> pseudo-attribute</simpara>
+        <tag>choice</tag> pseudo-attribute</simpara>
       </listitem>
     </itemizedlist>
-
     The latter is provided only as a temporary workaround because the
     locale files do not currently have translations for the word
@@ -1925,10 +1886,8 @@
     logical "or" separator in French (for example), you currently need
     to do this:
-
     <literallayout>&lt;?dbchoice choice="ou"?></literallayout>
     </para>
-
     <warning>
-      <para>The <sgmltag>dbchoice</sgmltag> processing instruction is
+      <para>The <tag>dbchoice</tag> processing instruction is
       an unfortunate hack; support for it may disappear in the future
       (particularly if and when a more appropriate means for marking
@@ -1938,12 +1897,7 @@
 </doc:template>
 <xsl:template name="select.choice.separator">
-  
   <xsl:variable name="choice">
-    <xsl:call-template name="pi-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbchoice')"/>
-      <xsl:with-param name="attribute">choice</xsl:with-param>
-    </xsl:call-template>
-  </xsl:variable>
-  
+    <xsl:call-template name="pi.dbchoice_choice"/>
+  </xsl:variable>
   <xsl:choose>
     <!-- if value of $choice is "and" or "or", translate to equivalent in -->
@@ -2025,4 +1979,3 @@
     </xsl:choose>
   </xsl:template>
-
 </xsl:stylesheet>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/de.xml
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/de.xml	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/de.xml	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -20,4 +20,11 @@
 
 <!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
 
 <l:gentext key="Abstract" text="Zusammenfassung"/>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/en.xml
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/en.xml	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/en.xml	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -20,4 +20,11 @@
 
 <!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
 
 <l:gentext key="Abstract" text="Abstract"/>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/es.xml
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/es.xml	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/es.xml	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -20,4 +20,11 @@
 
 <!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
 
 <l:gentext key="Abstract" text="Resumen"/>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/fr.xml
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/fr.xml	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/fr.xml	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -20,4 +20,11 @@
 
 <!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
 
 <l:gentext key="Abstract" text="Résumé"/>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/it.xml
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/it.xml	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/it.xml	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -20,4 +20,11 @@
 
 <!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
 
 <l:gentext key="Abstract" text="Estratto"/>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/labels.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/labels.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/labels.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -194,4 +194,16 @@
     </xsl:when>
     <xsl:when test="string($reference.autolabel) != 0">
+      <xsl:if test="$component.label.includes.part.label != 0 and
+                      ancestor::part">
+        <xsl:variable name="part.label">
+          <xsl:apply-templates select="ancestor::part" 
+                               mode="label.markup"/>
+        </xsl:variable>
+        <xsl:if test="$part.label != ''">
+          <xsl:value-of select="$part.label"/>
+          <xsl:apply-templates select="ancestor::part" 
+                               mode="intralabel.punctuation"/>
+        </xsl:if>
+      </xsl:if>
       <xsl:variable name="format">
         <xsl:call-template name="autolabel.format">
@@ -199,5 +211,12 @@
         </xsl:call-template>
       </xsl:variable>
-      <xsl:number from="book" count="reference" format="{$format}" level="any"/>
+      <xsl:choose>
+        <xsl:when test="$label.from.part != 0 and ancestor::part">
+          <xsl:number from="part" count="reference" format="{$format}" level="any"/>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:number from="book" count="reference" format="{$format}" level="any"/>
+        </xsl:otherwise>
+      </xsl:choose>
     </xsl:when>
   </xsl:choose>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/pi.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/pi.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/pi.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -1,10 +1,12 @@
 <?xml version='1.0'?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
-                xmlns:date="http://exslt.org/dates-and-times"
-                xmlns:exsl="http://exslt.org/common"
-                exclude-result-prefixes="doc date exsl"
-                extension-element-prefixes="date exsl"
-                version='1.0'>
+<xsl:stylesheet
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+  xmlns:date="http://exslt.org/dates-and-times"
+  xmlns:exsl="http://exslt.org/common"
+  xmlns:xlink="http://www.w3.org/1999/xlink"
+  exclude-result-prefixes="doc date exsl"
+  extension-element-prefixes="date exsl"
+  version='1.0'>
 
 <!-- ********************************************************************
@@ -16,15 +18,106 @@
      copyright and other information.
 
-     This file contains general templates for processing processing
-     instructions common to both the HTML and FO versions of the
-     DocBook stylesheets.
      ******************************************************************** -->
 
-<!-- Process PIs also on title pages -->
-<xsl:template match="processing-instruction()" mode="titlepage.mode">
-  <xsl:apply-templates select="."/>
-</xsl:template>
-
-<xsl:template match="processing-instruction('dbtimestamp')">
+<doc:reference xmlns=""><info><title>Common Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro id="partintro">
+    <title>Introduction</title>
+    <para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the
+      “common” part of the DocBook XSL stylesheets.
+      <note>
+        <para>You add these PIs at particular points in a document to
+          cause specific “exceptions” to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it’s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+      </note>
+    </para>
+  </partintro>
+</doc:reference>
+
+<!-- ==================================================================== -->
+<doc:pi name="dbchoice_choice" xmlns="">
+  <refpurpose>Generates a localized choice separator</refpurpose>
+  <refdescription id="select.choice.separator-desc">
+    <para>Use the <tag class="xmlpi">dbchoice choice</tag> PI to
+      generate an appropriate localized “choice” separator (for
+      example, <literal>and</literal> or <literal>or</literal>)
+      before the final item in an inline <tag>simplelist</tag></para>
+    <warning>
+      <para>This PI is a less-than-ideal hack; support for it may
+        disappear in the future (particularly if and when a more
+        appropriate means for marking up "choice" lists becomes
+        available in DocBook).</para>
+    </warning>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbchoice choice="and"|"or"|<replaceable>string</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>choice="and"</term>
+        <listitem>
+          <para>generates a localized <literal>and</literal> separator</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>choice="or"</term>
+        <listitem>
+          <para>generates a localized <literal>or</literal> separator</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>choice="<replaceable>string</replaceable>"</term>
+        <listitem>
+          <para>generates a literal <replaceable>string</replaceable> separator</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbchoice_choice">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbchoice')"/>
+    <xsl:with-param name="attribute">choice</xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbtimestamp" xmlns="">
+  <refpurpose>Inserts a date timestamp</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbtimestamp</tag> PI at any point in a
+      source document to cause a date timestamp (a formatted
+      string representing the current date and time) to be
+      inserted in output of the document.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbtimestamp format="<replaceable>formatstring</replaceable>" [padding="0"|"1"]</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>format="<replaceable>formatstring</replaceable>"</term>
+        <listitem>
+          <para>Specifies format in which the date and time are
+            output</para>
+        <note>
+          <para>For details of the content of the format string,
+            see <link role="tcg" xlink:href="Datetime.html"
+              >Date and time</link>.</para>
+        </note>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>padding="0"|"1"</term>
+        <listitem>
+          <para>Specifies padding behavior; if non-zero, padding is is added</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbtimestamp">
   <xsl:variable name="format">
     <xsl:variable name="pi-format">
@@ -45,6 +138,5 @@
       </xsl:otherwise>
     </xsl:choose>
-  </xsl:variable>  
-
+  </xsl:variable> 
   <xsl:variable name="padding">
     <xsl:variable name="pi-padding">
@@ -61,5 +153,4 @@
     </xsl:choose>
   </xsl:variable>
-
   <xsl:variable name="date">
     <xsl:choose>
@@ -73,8 +164,7 @@
     </xsl:choose>
   </xsl:variable>
-
   <xsl:choose>
     <xsl:when test="function-available('date:date-time') or
-                    function-available('date:dateTime')">
+      function-available('date:dateTime')">
       <xsl:call-template name="datetime.format">
         <xsl:with-param name="date" select="$date"/>
@@ -89,5 +179,53 @@
     </xsl:otherwise>
   </xsl:choose>
-
+</xsl:template>
+
+<doc:pi name="dbtex_delims" xmlns="">
+  <refpurpose>Generates delimiters around embedded TeX equations
+    in output</refpurpose>
+  <refdescription>
+    <para>Use the <tag class="xmlpi">dbtex delims</tag> PI as a
+      child of a <tag>textobject</tag> containing embedded TeX
+      markup, to cause that markup to be surrounded by
+      <literal>$</literal> delimiter characters in output.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbtex delims="no"|"yes"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>dbtex delims="no"|"yes"</term>
+        <listitem>
+          <para>Specifies whether delimiters are output</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>tex.math.delims</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="TexMath.html"
+        >DBTeXMath</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbtex_delims">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbtex')"/>
+    <xsl:with-param name="attribute" select="'delims'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction()" mode="titlepage.mode">
+  <!-- * Als process PIs on title pages -->
+  <xsl:apply-templates select="."/>
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbtimestamp')">
+  <xsl:call-template name="pi.dbtimestamp"/>
 </xsl:template>
 
@@ -96,115 +234,112 @@
   <xsl:param name="format"/>
   <xsl:param name="padding" select="1"/>
-  
   <xsl:if test="$format != ''">
     <!-- replace any whitespace in the format string with a non-breaking space -->
     <xsl:variable name="format-nbsp"
-		  select="translate($format,
-			  '&#x20;&#x9;&#xd;&#xa;',
-			  '&#xa0;&#xa0;&#xa0;&#xa0;')"/>
+      select="translate($format,
+      '&#x20;&#x9;&#xd;&#xa;',
+      '&#xa0;&#xa0;&#xa0;&#xa0;')"/>
     <xsl:variable name="tokenized-format-string">
       <xsl:call-template name="str.tokenize.keep.delimiters">
-	<xsl:with-param name="string" select="$format-nbsp"/>
-	<xsl:with-param name="delimiters" select="'&#xa0;,./-()[]:'"/>
+        <xsl:with-param name="string" select="$format-nbsp"/>
+        <xsl:with-param name="delimiters" select="'&#xa0;,./-()[]:'"/>
       </xsl:call-template>
     </xsl:variable>
-
-  <xsl:choose>
-    <!-- include extra test for Xalan quirk -->
-    <xsl:when test="function-available('exsl:node-set') or 
-		    contains(system-property('xsl:vendor'),'Apache Software Foundation')">
-      <!-- We must preserve context node in order to get valid language -->
-      <xsl:variable name="context" select="."/>
-      <xsl:for-each select="exsl:node-set($tokenized-format-string)/node()">
-        <xsl:variable name="token">
-          <xsl:value-of select="."/>
-        </xsl:variable>
-        <!-- Restore context node -->
-        <xsl:for-each select="$context">
-          <xsl:choose>
-            <xsl:when test="$token = 'a'">
-              <xsl:call-template name="gentext.template">
-                <xsl:with-param name="context" select="'datetime-abbrev'"/>
-                <xsl:with-param name="name" select="date:day-abbreviation($date)"/>
-              </xsl:call-template>
-            </xsl:when>
-            <xsl:when test="$token = 'A'">
-              <xsl:call-template name="gentext.template">
-                <xsl:with-param name="context" select="'datetime-full'"/>
-                <xsl:with-param name="name" select="date:day-name($date)"/>
-              </xsl:call-template>
-            </xsl:when>
-            <xsl:when test="$token = 'b'">
-              <xsl:call-template name="gentext.template">
-                <xsl:with-param name="context" select="'datetime-abbrev'"/>
-                <xsl:with-param name="name" select="date:month-abbreviation($date)"/>
-              </xsl:call-template>
-            </xsl:when>
-            <xsl:when test="$token = 'c'">
-              <xsl:value-of select="date:date($date)"/>
-              <xsl:text> </xsl:text>
-              <xsl:value-of select="date:time($date)"/>
-            </xsl:when>
-            <xsl:when test="$token = 'B'">
-              <xsl:call-template name="gentext.template">
-                <xsl:with-param name="context" select="'datetime-full'"/>
-                <xsl:with-param name="name" select="date:month-name($date)"/>
-              </xsl:call-template>
-            </xsl:when>
-            <xsl:when test="$token = 'd'">
-              <xsl:if test="$padding = 1 and
-              string-length(date:day-in-month($date)) = 1">0</xsl:if>
-              <xsl:value-of select="date:day-in-month($date)"/>
-            </xsl:when>
-            <xsl:when test="$token = 'H'">
-              <xsl:if test="$padding = 1 and string-length(date:hour-in-day($date)) = 1">0</xsl:if>
-              <xsl:value-of select="date:hour-in-day($date)"/>
-            </xsl:when>
-            <xsl:when test="$token = 'j'">
-              <xsl:value-of select="date:day-in-year($date)"/>
-            </xsl:when>
-            <xsl:when test="$token = 'm'">
-              <xsl:if test="$padding = 1 and string-length(date:month-in-year($date)) = 1">0</xsl:if>
-              <xsl:value-of select="date:month-in-year($date)"/>
-            </xsl:when>
-            <xsl:when test="$token = 'M'">
-              <xsl:if test="string-length(date:minute-in-hour($date)) = 1">0</xsl:if>
-              <xsl:value-of select="date:minute-in-hour($date)"/>
-            </xsl:when>
-            <xsl:when test="$token = 'S'">
-              <xsl:if test="string-length(date:second-in-minute($date)) = 1">0</xsl:if>
-              <xsl:value-of select="date:second-in-minute($date)"/>
-            </xsl:when>
-            <xsl:when test="$token = 'U'">
-              <xsl:value-of select="date:week-in-year($date)"/>
-            </xsl:when>
-            <xsl:when test="$token = 'w'">
-              <xsl:value-of select="date:day-in-week($date)"/>
-            </xsl:when>
-            <xsl:when test="$token = 'x'">
-              <xsl:value-of select="date:date($date)"/>
-            </xsl:when>
-            <xsl:when test="$token = 'X'">
-              <xsl:value-of select="date:time($date)"/>
-            </xsl:when>
-            <xsl:when test="$token = 'Y'">
-              <xsl:value-of select="date:year($date)"/>
-            </xsl:when>
-            <xsl:otherwise>
-              <xsl:value-of select="$token"/>
-            </xsl:otherwise>
-          </xsl:choose>
+    <xsl:choose>
+      <!-- include extra test for Xalan quirk -->
+      <xsl:when test="function-available('exsl:node-set') or 
+        contains(system-property('xsl:vendor'),'Apache Software Foundation')">
+        <!-- We must preserve context node in order to get valid language -->
+        <xsl:variable name="context" select="."/>
+        <xsl:for-each select="exsl:node-set($tokenized-format-string)/node()">
+          <xsl:variable name="token">
+            <xsl:value-of select="."/>
+          </xsl:variable>
+          <!-- Restore context node -->
+          <xsl:for-each select="$context">
+            <xsl:choose>
+              <xsl:when test="$token = 'a'">
+                <xsl:call-template name="gentext.template">
+                  <xsl:with-param name="context" select="'datetime-abbrev'"/>
+                  <xsl:with-param name="name" select="date:day-abbreviation($date)"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="$token = 'A'">
+                <xsl:call-template name="gentext.template">
+                  <xsl:with-param name="context" select="'datetime-full'"/>
+                  <xsl:with-param name="name" select="date:day-name($date)"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="$token = 'b'">
+                <xsl:call-template name="gentext.template">
+                  <xsl:with-param name="context" select="'datetime-abbrev'"/>
+                  <xsl:with-param name="name" select="date:month-abbreviation($date)"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="$token = 'c'">
+                <xsl:value-of select="date:date($date)"/>
+                <xsl:text> </xsl:text>
+                <xsl:value-of select="date:time($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'B'">
+                <xsl:call-template name="gentext.template">
+                  <xsl:with-param name="context" select="'datetime-full'"/>
+                  <xsl:with-param name="name" select="date:month-name($date)"/>
+                </xsl:call-template>
+              </xsl:when>
+              <xsl:when test="$token = 'd'">
+                <xsl:if test="$padding = 1 and
+                  string-length(date:day-in-month($date)) = 1">0</xsl:if>
+                <xsl:value-of select="date:day-in-month($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'H'">
+                <xsl:if test="$padding = 1 and string-length(date:hour-in-day($date)) = 1">0</xsl:if>
+                <xsl:value-of select="date:hour-in-day($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'j'">
+                <xsl:value-of select="date:day-in-year($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'm'">
+                <xsl:if test="$padding = 1 and string-length(date:month-in-year($date)) = 1">0</xsl:if>
+                <xsl:value-of select="date:month-in-year($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'M'">
+                <xsl:if test="string-length(date:minute-in-hour($date)) = 1">0</xsl:if>
+                <xsl:value-of select="date:minute-in-hour($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'S'">
+                <xsl:if test="string-length(date:second-in-minute($date)) = 1">0</xsl:if>
+                <xsl:value-of select="date:second-in-minute($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'U'">
+                <xsl:value-of select="date:week-in-year($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'w'">
+                <xsl:value-of select="date:day-in-week($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'x'">
+                <xsl:value-of select="date:date($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'X'">
+                <xsl:value-of select="date:time($date)"/>
+              </xsl:when>
+              <xsl:when test="$token = 'Y'">
+                <xsl:value-of select="date:year($date)"/>
+              </xsl:when>
+              <xsl:otherwise>
+                <xsl:value-of select="$token"/>
+              </xsl:otherwise>
+            </xsl:choose>
+          </xsl:for-each>
         </xsl:for-each>
-      </xsl:for-each>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:message>
-        Timestamp processing requires an XSLT processor with support
-        for the EXSLT node-set() function.
-      </xsl:message>
-    </xsl:otherwise>
-  </xsl:choose>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:message>
+          Timestamp processing requires an XSLT processor with support
+          for the EXSLT node-set() function.
+        </xsl:message>
+      </xsl:otherwise>
+    </xsl:choose>
   </xsl:if>
-
 </xsl:template>
 
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/refentry.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/refentry.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/refentry.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -17,34 +17,23 @@
 
 <!-- ==================================================================== -->
-<doc:reference xmlns="">
-  <referenceinfo>
+<doc:reference xmlns="" xml:id="refentry">
+  <info>
+    <title>Common » Refentry Metadata Template Reference</title>
     <releaseinfo role="meta">
       $Id$
     </releaseinfo>
-    <corpauthor>The DocBook Project</corpauthor>
-    <copyright>
-      <year>2005-2007</year>
-      <holder>The DocBook Project</holder>
-    </copyright>
-  </referenceinfo>
-  <title>Refentry Metadata-Gathering Template Reference</title>
-
-  <partintro id="partintro">
+  </info>
+  <!-- * yes, partintro is a valid child of a reference... -->
+  <partintro xml:id="partintro">
     <title>Introduction</title>
-
-    <para>This is technical reference documentation for the "refentry
-    metadata gathering" templates in the DocBook XSL Stylesheets.</para>
-
+    <para>This is technical reference documentation for the “refentry
+    metadata” templates in the DocBook XSL Stylesheets.</para>
     <para>This is not intended to be user documentation. It is provided
-    for developers writing customization layers for the
-    stylesheets.</para>
-
+    for developers writing customization layers for the stylesheets.</para>
     <note>
       <para>Currently, only the manpages stylesheets make use of these
       templates. They are, however, potentially useful elsewhere.</para>
     </note>
-
   </partintro>
-
 </doc:reference>
 
@@ -57,25 +46,25 @@
     example, users view Unix man pages as, well, individual pages, not as
     part of a "book" of some kind. Therefore, it is sometimes necessary to
-    embed "context" information in output for each <sgmltag>refentry</sgmltag>.</para>
+    embed "context" information in output for each <tag>refentry</tag>.</para>
 
     <para>However, one problem is that different users mark up that
     context information in different ways. Often (usually), the
     context information is not actually part of the content of the
-    <sgmltag>refentry</sgmltag> itself, but instead part of the content of a
-    parent or ancestor element to the the <sgmltag>refentry</sgmltag>. And
+    <tag>refentry</tag> itself, but instead part of the content of a
+    parent or ancestor element to the the <tag>refentry</tag>. And
     even then, DocBook provides a variety of elements that users might
     potentially use to mark up the same kind of information. One user
-    might use the <sgmltag>productnumber</sgmltag> element to mark up version
+    might use the <tag>productnumber</tag> element to mark up version
     information about a particular product, while another might use
-    the <sgmltag>releaseinfo</sgmltag> element.</para>
+    the <tag>releaseinfo</tag> element.</para>
 
     <para>Taking all that in mind, the
     <function>get.refentry.metadata</function> template tries to gather
-    metadata from a <sgmltag>refentry</sgmltag> element and its ancestor
+    metadata from a <tag>refentry</tag> element and its ancestor
     elements in an intelligent and user-configurable way. The basic
     mechanism used in the XPath expressions throughout this stylesheet
     is to select the relevant metadata from the *info element that is
-    closest to the actual <sgmltag>refentry</sgmltag>&#160;– either on the
-    <sgmltag>refentry</sgmltag> itself, or on its nearest ancestor.</para>
+    closest to the actual <tag>refentry</tag>&#160;– either on the
+    <tag>refentry</tag> itself, or on its nearest ancestor.</para>
 
     <note>
@@ -92,5 +81,5 @@
         <term>refname</term>
         <listitem>
-          <para>The first <sgmltag>refname</sgmltag> in the refentry</para>
+          <para>The first <tag>refname</tag> in the refentry</para>
         </listitem>
       </varlistentry>
@@ -98,5 +87,5 @@
         <term>info</term>
         <listitem>
-          <para>A set of info nodes (from a <sgmltag>refentry</sgmltag>
+          <para>A set of info nodes (from a <tag>refentry</tag>
           element and its ancestors)</para>
         </listitem>
@@ -195,8 +184,8 @@
     <para>The <literal>man(7)</literal> man page describes this as "the
     title of the man page (e.g., <literal>MAN</literal>). This differs
-    from <sgmltag>refname</sgmltag> in that, if the <sgmltag>refentry</sgmltag> has a
-    <sgmltag>refentrytitle</sgmltag>, we use that as the <sgmltag>title</sgmltag>;
-    otherwise, we just use first <sgmltag>refname</sgmltag> in the first
-    <sgmltag>refnamediv</sgmltag> in the source.</para>
+    from <tag>refname</tag> in that, if the <tag>refentry</tag> has a
+    <tag>refentrytitle</tag>, we use that as the <tag>title</tag>;
+    otherwise, we just use first <tag>refname</tag> in the first
+    <tag>refnamediv</tag> in the source.</para>
   </refdescription>
   <refparameter id="get.refentry.title-params">
@@ -205,5 +194,5 @@
         <term>refname</term>
         <listitem>
-          <para>The first <sgmltag>refname</sgmltag> in the refentry</para>
+          <para>The first <tag>refname</tag> in the refentry</para>
         </listitem>
       </varlistentry>
@@ -211,5 +200,5 @@
   </refparameter>
   <refreturn id="get.refentry.title-returns">
-  <para>Returns a <sgmltag>title</sgmltag> node.</para></refreturn>
+  <para>Returns a <tag>title</tag> node.</para></refreturn>
 </doc:template>
 <xsl:template name="get.refentry.title">
@@ -233,6 +222,6 @@
     <para>The <literal>man(7)</literal> man page describes this as "the
     section number the man page should be placed in (e.g.,
-    <literal>7</literal>)". If we do not find a <sgmltag>manvolnum</sgmltag>
-    specified in the source, and we find that the <sgmltag>refentry</sgmltag> is
+    <literal>7</literal>)". If we do not find a <tag>manvolnum</tag>
+    specified in the source, and we find that the <tag>refentry</tag> is
     for a function, we use the section number <literal>3</literal>
     ["Library calls (functions within program libraries)"]; otherwise, we
@@ -245,5 +234,5 @@
         <term>refname</term>
         <listitem>
-          <para>The first <sgmltag>refname</sgmltag> in the refentry</para>
+          <para>The first <tag>refname</tag> in the refentry</para>
         </listitem>
       </varlistentry>
@@ -324,5 +313,5 @@
         <term>refname</term>
         <listitem>
-          <para>The first <sgmltag>refname</sgmltag> in the refentry</para>
+          <para>The first <tag>refname</tag> in the refentry</para>
         </listitem>
       </varlistentry>
@@ -330,5 +319,5 @@
         <term>info</term>
         <listitem>
-          <para>A set of info nodes (from a <sgmltag>refentry</sgmltag>
+          <para>A set of info nodes (from a <tag>refentry</tag>
           element and its ancestors)</para>
         </listitem>
@@ -343,5 +332,5 @@
   </refparameter>
   <refreturn id="get.refentry.date-returns">
-    <para>Returns a <sgmltag>date</sgmltag> node.</para>
+    <para>Returns a <tag>date</tag> node.</para>
   </refreturn>
 </doc:template>
@@ -496,5 +485,5 @@
         <term>refname</term>
         <listitem>
-          <para>The first <sgmltag>refname</sgmltag> in the refentry</para>
+          <para>The first <tag>refname</tag> in the refentry</para>
         </listitem>
       </varlistentry>
@@ -502,5 +491,5 @@
         <term>info</term>
         <listitem>
-          <para>A set of info nodes (from a <sgmltag>refentry</sgmltag>
+          <para>A set of info nodes (from a <tag>refentry</tag>
           element and its ancestors)</para>
         </listitem>
@@ -516,5 +505,5 @@
   </refparameter>
   <refreturn id="get.refentry.source-returns">
-    <para>Returns a <sgmltag>source</sgmltag> node.</para>
+    <para>Returns a <tag>source</tag> node.</para>
   </refreturn>
 </doc:template>
@@ -612,5 +601,5 @@
         <term>refname</term>
         <listitem>
-          <para>The first <sgmltag>refname</sgmltag> in the refentry</para>
+          <para>The first <tag>refname</tag> in the refentry</para>
         </listitem>
       </varlistentry>
@@ -618,5 +607,5 @@
         <term>info</term>
         <listitem>
-          <para>A set of info nodes (from a <sgmltag>refentry</sgmltag>
+          <para>A set of info nodes (from a <tag>refentry</tag>
           element and its ancestors)</para>
         </listitem>
@@ -796,5 +785,5 @@
         <term>refname</term>
         <listitem>
-          <para>The first <sgmltag>refname</sgmltag> in the refentry</para>
+          <para>The first <tag>refname</tag> in the refentry</para>
         </listitem>
       </varlistentry>
@@ -802,5 +791,5 @@
         <term>info</term>
         <listitem>
-          <para>A set of info nodes (from a <sgmltag>refentry</sgmltag>
+          <para>A set of info nodes (from a <tag>refentry</tag>
           element and its ancestors)</para>
         </listitem>
@@ -982,5 +971,5 @@
         <term>refname</term>
         <listitem>
-          <para>The first <sgmltag>refname</sgmltag> in the refentry</para>
+          <para>The first <tag>refname</tag> in the refentry</para>
         </listitem>
       </varlistentry>
@@ -988,5 +977,5 @@
         <term>info</term>
         <listitem>
-          <para>A set of info nodes (from a <sgmltag>refentry</sgmltag>
+          <para>A set of info nodes (from a <tag>refentry</tag>
           element and its ancestors)</para>
         </listitem>
@@ -1002,5 +991,5 @@
   </refparameter>
   <refreturn id="get.refentry.manual-returns">
-    <para>Returns a <sgmltag>manual</sgmltag> node.</para>
+    <para>Returns a <tag>manual</tag> node.</para>
   </refreturn>
 </doc:template>
@@ -1141,16 +1130,16 @@
   <refdescription id="get.refentry.metadata.prefs-desc">
     <para>The DocBook XSL stylesheets include several user-configurable
-    global stylesheet parameters for controlling <sgmltag>refentry</sgmltag>
+    global stylesheet parameters for controlling <tag>refentry</tag>
     metadata gathering. Those parameters are not read directly by the
-    other <sgmltag>refentry</sgmltag> metadata-gathering
+    other <tag>refentry</tag> metadata-gathering
     templates. Instead, they are read only by the
     <function>get.refentry.metadata.prefs</function> template,
     which assembles them into a structure that is then passed to
-    the other <sgmltag>refentry</sgmltag> metadata-gathering
+    the other <tag>refentry</tag> metadata-gathering
     templates.</para>
 
     <para>So the, <function>get.refentry.metadata.prefs</function>
     template is the only interface to collecting stylesheet parameters for
-    controlling <sgmltag>refentry</sgmltag> metadata gathering.</para>
+    controlling <tag>refentry</tag> metadata gathering.</para>
   </refdescription>
   <refparameter id="get.refentry.metadata.prefs-params">
@@ -1159,5 +1148,5 @@
   </refparameter>
   <refreturn id="get.refentry.metadata.prefs-returns">
-    <para>Returns a <sgmltag>manual</sgmltag> node.</para>
+    <para>Returns a <tag>manual</tag> node.</para>
   </refreturn>
 </doc:template>
@@ -1224,5 +1213,5 @@
         <term>refname</term>
         <listitem>
-          <para>The first <sgmltag>refname</sgmltag> in the refentry</para>
+          <para>The first <tag>refname</tag> in the refentry</para>
         </listitem>
       </varlistentry>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/table.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/table.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/table.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -125,9 +125,9 @@
 <refpurpose>Determine the column number in which a given entry occurs</refpurpose>
 <refdescription id="entry.colnum-desc">
-<para>If an <sgmltag>entry</sgmltag> has a
-<sgmltag class="attribute">colname</sgmltag> or
-<sgmltag class="attribute">namest</sgmltag> attribute, this template
+<para>If an <tag>entry</tag> has a
+<tag class="attribute">colname</tag> or
+<tag class="attribute">namest</tag> attribute, this template
 will determine the number of the column in which the entry should occur.
-For other <sgmltag>entry</sgmltag>s, nothing is returned.</para>
+For other <tag>entry</tag>s, nothing is returned.</para>
 </refdescription>
 <refparameter id="entry.colnum-params">
@@ -135,5 +135,5 @@
 <varlistentry><term>entry</term>
 <listitem>
-<para>The <sgmltag>entry</sgmltag>-element which is to be tested.</para>
+<para>The <tag>entry</tag>-element which is to be tested.</para>
 </listitem>
 </varlistentry>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/utility.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/utility.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/utility.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -4,4 +4,5 @@
                 xmlns:dyn="http://exslt.org/dynamic"
                 xmlns:saxon="http://icl.com/saxon"
+                xmlns:xlink="http://www.w3.org/1999/xlink"
                 exclude-result-prefixes="doc dyn saxon"
                 version='1.0'>
@@ -16,40 +17,31 @@
 
      ******************************************************************** -->
-
-<doc:reference xmlns="">
-<referenceinfo>
-<releaseinfo role="meta">
-$Id$
-</releaseinfo>
-<corpauthor>The DocBook Project Development Team</corpauthor>
-<copyright><year>2007</year>
-<holder>The DocBook Project</holder>
-</copyright>
-</referenceinfo>
-<title>Utility Template Reference</title>
-
-<partintro id="partintro">
-<title>Introduction</title>
-
-<para>This is technical reference documentation for the
-  miscellaneous utility templates in the DocBook XSL
-  Stylesheets.</para>
-
-<note>
-<para>These templates are defined in a separate file from the set
-  of “common” templates because some of the comment templates
-  reference DocBook XSL stylesheet parameters, requiring the
-  entire set of parameters to be imported/included in any
-  stylesheet that imports/includes the common templates.</para>
-<para>The utility templates don’t import or include any DocBook
-  XSL stylesheet parameters, so the utility templates can be used
-  without importing the whole set of parameters.</para>
-</note>
-
-<para>The following documentation is not intended to be
-  <quote>user</quote> documentation.  It is provided for developers
-  writing customization layers for the stylesheets, and for anyone
-  who's interested in <quote>how it works</quote>.</para>
-</partintro>
+<doc:reference xmlns="" xml:id="utility">
+  <info>
+    <title>Common » Utility Template Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <!-- * yes, partintro is a valid child of a reference... -->
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is technical reference documentation for the
+      miscellaneous utility templates in the DocBook XSL
+      Stylesheets.</para>
+    <note>
+      <para>These templates are defined in a separate file from the set
+        of “common” templates because some of the comment templates
+        reference DocBook XSL stylesheet parameters, requiring the
+        entire set of parameters to be imported/included in any
+        stylesheet that imports/includes the common templates.</para>
+      <para>The utility templates don’t import or include any DocBook
+        XSL stylesheet parameters, so the utility templates can be used
+        without importing the whole set of parameters.</para>
+    </note>
+    <para>This is not intended to be user documentation. It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+  </partintro>
 </doc:reference>
 
@@ -68,6 +60,5 @@
   <refparameter id="log.message-params">
     <variablelist>
-      <varlistentry>
-        <term>level</term>
+      <varlistentry><term>level</term>
         <listitem>
           <para>Text to log/emit in the message-level field to
@@ -77,6 +68,5 @@
         </listitem>
       </varlistentry>
-      <varlistentry>
-        <term>source</term>
+      <varlistentry><term>source</term>
         <listitem>
           <para>Text to log/emit in the source field to identify the
@@ -97,6 +87,5 @@
         </listitem>
       </varlistentry>
-      <varlistentry>
-        <term>context-desc</term>
+      <varlistentry><term>context-desc</term>
         <listitem>
           <para>Text to log/emit in the context-description field to
@@ -104,6 +93,5 @@
         </listitem>
       </varlistentry>
-      <varlistentry>
-        <term>context-desc-field-length</term>
+      <varlistentry><term>context-desc-field-length</term>
         <listitem>
           <para>Specifies length of the context-description field
@@ -127,12 +115,10 @@
         </listitem>
       </varlistentry>
-      <varlistentry>
-        <term>message</term>
+      <varlistentry><term>message</term>
         <listitem>
           <para>Text to log/emit in the actual message field</para>
         </listitem>
       </varlistentry>
-      <varlistentry>
-        <term>message-field-length</term>
+      <varlistentry><term>message-field-length</term>
         <listitem>
           <para>Specifies length of the message
@@ -256,9 +242,9 @@
     <note>
       <para>This function began as a copy of Nate Austin's
-        <function>prepend-pad</function> function in the <ulink
-          url="http://www.dpawson.co.uk/xsl/sect2/padding.html" >Padding
-          Content</ulink> section of Dave Pawson's <ulink
-          url="http://www.dpawson.co.uk/xsl/index.html" >XSLT
-          FAQ</ulink>.</para>
+        <function>prepend-pad</function> function in the <link
+          xlink:href="http://www.dpawson.co.uk/xsl/sect2/padding.html" >Padding
+          Content</link> section of Dave Pawson's <link
+          xlink:href="http://www.dpawson.co.uk/xsl/index.html" >XSLT
+          FAQ</link>.</para>
     </note>
   </refdescription>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/zh_cn.xml
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/zh_cn.xml	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/zh_cn.xml	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -20,4 +20,11 @@
 
 <!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
 
 <l:gentext key="Abstract" text="摘要"/>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/common/zh_tw.xml
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/common/zh_tw.xml	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/common/zh_tw.xml	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -20,4 +20,11 @@
 
 <!-- ******************************************************************** -->
+<!-- In these files, % with a letter is used for a placeholder: -->
+<!--   %t is the current element's title -->
+<!--   %s is the current element's subtitle (if applicable)-->
+<!--   %n is the current element's number label-->
+<!--   %p is the current element's page number (if applicable)-->
+<!-- ******************************************************************** -->
+
 
 <l:gentext key="Abstract" text="摘要"/>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/component.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/component.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/component.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -714,29 +714,44 @@
   <xsl:param name="element" select="local-name(.)"/>
   <xsl:param name="gentext-key" select="local-name(.)"/>
+  <xsl:param name="language">
+    <xsl:call-template name="l10n.language"/>
+  </xsl:param>
+
+  <xsl:param name="format">
+    <xsl:call-template name="page.number.format">
+      <xsl:with-param name="master-reference" select="$master-reference"/>
+      <xsl:with-param name="element" select="$element"/>
+    </xsl:call-template>
+  </xsl:param>
+
+  <xsl:param name="initial-page-number">
+    <xsl:call-template name="initial.page.number">
+      <xsl:with-param name="master-reference" select="$master-reference"/>
+      <xsl:with-param name="element" select="$element"/>
+    </xsl:call-template>
+  </xsl:param>
+
+  <xsl:param name="force-page-count">
+    <xsl:call-template name="force.page.count">
+      <xsl:with-param name="master-reference" select="$master-reference"/>
+      <xsl:with-param name="element" select="$element"/>
+    </xsl:call-template>
+  </xsl:param>
 
   <fo:page-sequence hyphenate="{$hyphenate}"
                     master-reference="{$master-reference}">
     <xsl:attribute name="language">
-      <xsl:call-template name="l10n.language"/>
+      <xsl:value-of select="$language"/>
     </xsl:attribute>
     <xsl:attribute name="format">
-      <xsl:call-template name="page.number.format">
-        <xsl:with-param name="master-reference" select="$master-reference"/>
-        <xsl:with-param name="element" select="$element"/>
-      </xsl:call-template>
+      <xsl:value-of select="$format"/>
     </xsl:attribute>
 
     <xsl:attribute name="initial-page-number">
-      <xsl:call-template name="initial.page.number">
-        <xsl:with-param name="master-reference" select="$master-reference"/>
-        <xsl:with-param name="element" select="$element"/>
-      </xsl:call-template>
+      <xsl:value-of select="$initial-page-number"/>
     </xsl:attribute>
 
     <xsl:attribute name="force-page-count">
-      <xsl:call-template name="force.page.count">
-        <xsl:with-param name="master-reference" select="$master-reference"/>
-        <xsl:with-param name="element" select="$element"/>
-      </xsl:call-template>
+      <xsl:value-of select="$force-page-count"/>
     </xsl:attribute>
 
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/lists.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/lists.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/lists.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -1272,4 +1272,16 @@
 <!-- ==================================================================== -->
 
+<xsl:template name="orderedlist-starting-number">
+  <xsl:param name="list" select="."/>
+  <xsl:variable name="pi-start">
+    <xsl:call-template name="pi.dbfo_start">
+      <xsl:with-param name="node" select="$list"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:call-template name="output-orderedlist-starting-number">
+    <xsl:with-param name="list" select="$list"/>
+    <xsl:with-param name="pi-start" select="$pi-start"/>
+  </xsl:call-template>
+</xsl:template>
+
 </xsl:stylesheet>
-
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/param.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/param.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/param.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -1,4 +1,4 @@
 <?xml version="1.0" encoding="ASCII"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:src="http://nwalsh.com/xmlns/litprog/fragment" xmlns="http://docbook.org/ns/docbook" exclude-result-prefixes="src" version="1.0">
 
 <!-- This file is generated from param.xweb -->
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/pi.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/pi.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/pi.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -1,8 +1,10 @@
 <?xml version='1.0'?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
-                xmlns:fo="http://www.w3.org/1999/XSL/Format"
-                exclude-result-prefixes="doc"
-                version='1.0'>
+<xsl:stylesheet
+  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+  xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
+  xmlns:fo="http://www.w3.org/1999/XSL/Format"
+  xmlns:xlink="http://www.w3.org/1999/xlink"
+  exclude-result-prefixes="doc"
+  version='1.0'>
 
 <!-- ********************************************************************
@@ -16,36 +18,25 @@
      ******************************************************************** -->
 
-<doc:reference xmlns="">
-<referenceinfo>
-<releaseinfo role="meta">
-$Id$
-</releaseinfo>
-<authorgroup>
-  <author>
-    <orgname>The DocBook Project Development Team</orgname>
-  </author>
-</authorgroup>
-<copyright>
-  <year>2007</year>
-  <holder>The DocBook Project</holder>
-</copyright>
-</referenceinfo>
-<title>FO Processing Instruction Reference</title>
-
-<partintro id="partintro">
-<title>Introduction</title>
-
-<para>This is generated reference documentation for all
-  user-configurable processing instructions (PIs) in the DocBook
-  XSL stylesheets for FO output.
-  <note>
-    <para>You add these PIs at particular points in a document to
-      cause specific “exceptions” to formatting/output behavior. To
-      make global changes in formatting/output behavior across an
-      entire document, it’s better to do it by setting an
-      appropriate stylesheet parameter (if there is one).</para>
-  </note>
-</para>
-</partintro>
+<doc:reference xmlns=""><info><title>FO Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+
+  <partintro id="partintro">
+    <title>Introduction</title>
+
+    <para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for FO output.
+      <note>
+        <para>You add these PIs at particular points in a document to
+          cause specific “exceptions” to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it’s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+      </note>
+    </para>
+  </partintro>
 </doc:reference>
 
@@ -53,363 +44,490 @@
 
 <doc:pi name="dbfo_background-color" xmlns="">
-<refpurpose>Sets background color for an image</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo background-color</tag> PI before or
-    after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
-    <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
-    sibling to the element, to set a background color for the
-    image.</para>
-</refdescription>
+  <refpurpose>Sets background color for an image</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo background-color</tag> PI before or
+      after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
+      <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
+      sibling to the element, to set a background color for the
+      image.</para>
+  </refdescription>
   <refsynopsisdiv>
     <synopsis><tag class="xmlpi">dbfo background-color="<replaceable>color</replaceable>"</tag></synopsis>
   </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+        <listitem>
+          <para>An HTML color value</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="BGcolor.html"
+        >Background color</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_background-color">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'background-color'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_bgcolor" xmlns="">
+  <refpurpose>Sets background color on a table row or table cell</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo bgcolor</tag> PI as child of a table row
+      or cell to set a background color for that table row or cell.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
+        <listitem>
+          <para>An HTML color value</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="BGtableColor.html#CellBGColor"
+        >Cell background color</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_bgcolor">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'bgcolor'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_float-type" xmlns="">
+  <refpurpose>Specifies float behavior for a sidebar</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo float-type</tag> PI to specify the float
+      behavior for a <tag>sidebar</tag> (to cause the sidebar to be
+      displayed as a marginal note).</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo float-type="margin.note"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>float-type="margin.note"</term>
+        <listitem>
+          <para>Specifies that the <tag>sidebar</tag> should be
+            displayed as a marginal note.</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>sidebar.float.type parameter</parameter>,
+      <parameter>sidebar.float.width parameter</parameter>, 
+      <parameter>sidebar.properties attribute-set</parameter>,
+      <parameter>sidebar.title.properties</parameter>
+    </para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link xlink:href="SideFloats.html#SidebarFloats" >A sidebar as
+        side float</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_float-type">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'float-type'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_glossary-presentation" xmlns="">
+  <refpurpose>Specifies presentation style for a glossary</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo glossary-presentation</tag> PI as a child of
+      a <tag>glossary</tag> to control its presentation style.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo glossary-presentation="list"|"blocks"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>glossary-presentation="list"</term>
+        <listitem>
+          <para>Displays the glossary as a list</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>glossary-presentation="blocks"</term>
+        <listitem>
+          <para>Displays the glossary as blocks</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>glossary.as.blocks</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link xlink:href="Glossaries.html#GlossaryFormatPrint" >Glossary
+        formatting in print</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_glossary-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'glossary-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_glosslist-presentation" xmlns="">
+  <refpurpose>Specifies presentation style for a glosslist</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo glosslist-presentation</tag> PI as a child of
+      a <tag>glosslist</tag> to control its presentation style.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo glosslist-presentation="list"|"blocks"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>glosslist-presentation="list"</term>
+        <listitem>
+          <para>Displays the glosslist as a list</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>glosslist-presentation="blocks"</term>
+        <listitem>
+          <para>Displays the glosslist as blocks</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>glosslist.as.blocks</parameter> </para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link xlink:href="Glossaries.html#GlossaryFormatPrint" >Glossary
+        formatting in print</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_glosslist-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'glosslist-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_glossterm-width" xmlns="">
+  <refpurpose>Specifies the glossterm width for a glossary or
+    glosslist</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo glossterm-width</tag> PI as a child of a
+      <tag>glossary</tag> or <tag>glosslist</tag> to specify the
+      width for output of <tag>glossterm</tag> instances in the
+      output.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo glossterm-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>glossterm-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the glossterm width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>glossterm.width</parameter>,
+      <parameter>glossterm.separation</parameter>
+    </para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link xlink:href="Glossaries.html#GlossaryFormatPrint" >Glossary
+        formatting in print</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_glossterm-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'glossterm-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_keep-together" xmlns="">
+  <refpurpose>Specifies “keep” behavior for a table, example,
+    figure, or equation</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo keep-together</tag> PI as a child of a
+      formal object (<tag>table</tag>, <tag>example</tag>,
+      <tag>figure</tag>, or <tag>equation</tag>) or their informal
+      equivalents) to specify “keep” behavior for the object (to
+      allow the object to “break” across a page).</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo keep-together="auto"|"always"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>keep-together="auto"</term>
+        <listitem>
+          <para>Enables the object to break across a page</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>keep-together="always"</term>
+        <listitem>
+          <para>Prevents the object from breaking across a page (the
+            default stylesheet behavior)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para>formal.object.properties</para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link xlink:href="PageBreaking.html#KeepTogetherPI"
+        >Keep-together processing instruction</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_keep-together">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'keep-together'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_label-width" xmlns="">
+  <refpurpose>Specifies the label width for a qandaset</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo label-width</tag> PI as a child of a
+      <tag>qandaset</tag> to specify the width of labels.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo label-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the label width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="QandAformat.html"
+        >Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_label-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'label-width'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi name="dbfo_linenumbering.everyNth" xmlns="">
+  <refpurpose>Specifies interval for lines numbers in verbatims</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo linenumbering.everyNth</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the interval at which lines are numbered.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
+        <listitem>
+          <para>Specifies numbering interval; a number is output
+            before every <replaceable>N</replaceable>th line</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>linenumbering.everyNth</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="AnnotateListing.html#LineNumbering"
+        >Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_linenumbering.everyNth">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_linenumbering.separator" xmlns="">
+  <refpurpose>Specifies separator text for line numbers in verbatims</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo linenumbering.separator</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the separator text output between the line numbers and content.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>linenumbering.separator</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="AnnotateListing.html#LineNumbering"
+        >Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_linenumbering.separator">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_linenumbering.width" xmlns="">
+  <refpurpose>Specifies width for line numbers in verbatims</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo linenumbering.width</tag> PI as a child
+      of a “verbatim” element – <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> — to specify
+      the width set aside for line numbers.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the width (inluding units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>linenumbering.width</parameter></para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="AnnotateListing.html#LineNumbering"
+        >Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_linenumbering.width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi name="dbfo_list-presentation" xmlns="">
+  <refpurpose>Specifies presentation style for a variablelist or
+    segmentedlist</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo list-presentation</tag> PI as a child of
+      a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
+      control the presentation style for the list (to cause it, for
+      example, to be displayed as a table).</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo list-presentation="list"|"blocks"|"table"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>list-presentation="list"</term>
+        <listitem>
+          <para>Displays the list as a list</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="blocks"</term>
+        <listitem>
+          <para>(<tag>variablelist</tag> only) Displays the list as blocks</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="table"</term>
+        <listitem>
+          <para>(<tag>segmentedlist</tag> only) Displays the list as a table</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <itemizedlist>
       <listitem>
-        <para>FIXME: A color value? [In hex, as a name, or what?]</para>
+        <para><parameter>variablelist.as.blocks</parameter></para>
       </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
-</doc:pi>
-<xsl:template name="pi.dbfo_background-color">
-  <xsl:param name="node" select="."/>
-  <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
-    <xsl:with-param name="attribute" select="'background-color'"/>
-  </xsl:call-template>
-</xsl:template>
-
-<doc:pi name="dbfo_bgcolor" xmlns="">
-<refpurpose>Sets background color on an table row or table cell</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo bgcolor</tag> PI as child of a table row
-    or cell to set a background color for that table row or cell.</para>
-</refdescription>
-  <refsynopsisdiv>
-    <synopsis><tag class="xmlpi">dbfo bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
-  </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
       <listitem>
-        <para>FIXME: A color value? [In hex, as a name, or what?]</para>
+        <para><parameter>variablelist.as.table</parameter></para>
       </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
-</doc:pi>
-<xsl:template name="pi.dbfo_bgcolor">
-  <xsl:param name="node" select="."/>
-  <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
-    <xsl:with-param name="attribute" select="'bgcolor'"/>
-  </xsl:call-template>
-</xsl:template>
-
-<doc:pi name="dbfo_float-type" xmlns="">
-<refpurpose>Specifies float behavior for a sidebar</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo float-type</tag> PI to specify the float
-    behavior for a <tag>sidebar</tag> (to cause the sidebar to be
-  displayed as a marginal note).</para>
-</refdescription>
-  <refsynopsisdiv>
-    <synopsis><tag class="xmlpi">dbfo float-type="margin.note"</tag></synopsis>
-  </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>float-type="margin.note"</term>
-      <listitem>
-        <para>Specifies that the <tag>sidebar</tag> should be
-          displayed as a marginal note.</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
-</doc:pi>
-<xsl:template name="pi.dbfo_float-type">
-  <xsl:param name="node" select="."/>
-  <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
-    <xsl:with-param name="attribute" select="'float-type'"/>
-  </xsl:call-template>
-</xsl:template>
-
-<doc:pi name="dbfo_glossary-presentation" xmlns="">
-<refpurpose>Specifies presentation style for a glossary</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo glossary-presentation</tag> PI as a child of
-    a <tag>glossary</tag> to control its presentation style.</para>
-</refdescription>
-  <refsynopsisdiv>
-    <synopsis><tag class="xmlpi">dbfo glossary-presentation="list"|"blocks"</tag></synopsis>
-  </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>glossary-presentation="list"</term>
-      <listitem>
-        <para>Displayed the glossary as a list</para>
-      </listitem>
-    </varlistentry>
-    <varlistentry><term>glossary-presentation="blocks"</term>
-      <listitem>
-        <para>Displays the glossary as blocks</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
-</doc:pi>
-<xsl:template name="pi.dbfo_glossary-presentation">
-  <xsl:param name="node" select="."/>
-  <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
-    <xsl:with-param name="attribute" select="'glossary-presentation'"/>
-  </xsl:call-template>
-</xsl:template>
-
-<doc:pi name="dbfo_glosslist-presentation" xmlns="">
-<refpurpose>Specifies presentation style for a glosslist</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo glosslist-presentation</tag> PI as a child of
-    a <tag>glosslist</tag> to control its presentation style.</para>
-</refdescription>
-  <refsynopsisdiv>
-    <synopsis><tag class="xmlpi">dbfo glosslist-presentation="list"|"blocks"</tag></synopsis>
-  </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>glosslist-presentation="list"</term>
-      <listitem>
-        <para>Displayed the glosslist as a list</para>
-      </listitem>
-    </varlistentry>
-    <varlistentry><term>glosslist-presentation="blocks"</term>
-      <listitem>
-        <para>Displays the glosslist as blocks</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
-</doc:pi>
-<xsl:template name="pi.dbfo_glosslist-presentation">
-  <xsl:param name="node" select="."/>
-  <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
-    <xsl:with-param name="attribute" select="'glosslist-presentation'"/>
-  </xsl:call-template>
-</xsl:template>
-
-<doc:pi name="dbfo_glossterm-width" xmlns="">
-<refpurpose>Specifies the glossterm width for a glossary or
-  glosslist</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo glossterm-width</tag> PI as a child of a
-    <tag>glossary</tag> or <tag>glosslist</tag> to specify the
-    width for output of <tag>glossterm</tag> instances in the
-    output.</para>
-</refdescription>
-  <refsynopsisdiv>
-    <synopsis><tag class="xmlpi">dbfo glossterm-width="<replaceable>width</replaceable>"</tag></synopsis>
-  </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>glossterm-width="<replaceable>width</replaceable>"</term>
-      <listitem>
-        <para>FIXME: Specifies the glossterm width (in what units?)</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
-</doc:pi>
-<xsl:template name="pi.dbfo_glossterm-width">
-  <xsl:param name="node" select="."/>
-  <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
-    <xsl:with-param name="attribute" select="'glossterm-width'"/>
-  </xsl:call-template>
-</xsl:template>
-
-<doc:pi name="dbfo_keep-together" xmlns="">
-<refpurpose>Specifies “keep” behavior for a table, example,
-  figure, or equation</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo keep-together</tag> PI as a child of a
-    formal object (<tag>table</tag>, <tag>example</tag>,
-    <tag>figure</tag>, or <tag>equation</tag>) or their informal
-    equivalents) to specify “keep” behavior for the object (to
-    allow the object to “break” across a page).</para>
-</refdescription>
-  <refsynopsisdiv>
-    <synopsis><tag class="xmlpi">dbfo keep-together="auto"|"always"</tag></synopsis>
-  </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>keep-together="auto"</term>
-      <listitem>
-        <para>Enables the object to break across a page</para>
-      </listitem>
-    </varlistentry>
-    <varlistentry><term>keep-together="always"</term>
-      <listitem>
-        <para>Prevents the object from breaking across a page (the
-          default stylesheet behavior)</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
-</doc:pi>
-<xsl:template name="pi.dbfo_keep-together">
-  <xsl:param name="node" select="."/>
-  <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
-    <xsl:with-param name="attribute" select="'keep-together'"/>
-  </xsl:call-template>
-</xsl:template>
-
-<doc:pi name="dbfo_label-width" xmlns="">
-<refpurpose>Specifies the label width for an itemizedlist,
-  orderedlist, or qandaset</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo label-width</tag> PI as a child of an
-    <tag>itemizedlist</tag>, <tag>orderedlist</tag>, or
-    <tag>qandaset</tag> to specify the width of labels.</para>
-</refdescription>
-  <refsynopsisdiv>
-    <synopsis><tag class="xmlpi">dbfo label-width="<replaceable>width</replaceable>"</tag></synopsis>
-  </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
-      <listitem>
-        <para>FIXME: Specifies the label width (in what units?)</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
-</doc:pi>
-<xsl:template name="pi.dbfo_label-width">
-  <xsl:param name="node" select="."/>
-  <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
-    <xsl:with-param name="attribute" select="'label-width'"/>
-  </xsl:call-template>
-</xsl:template> 
-
-<doc:pi name="dbfo_linenumbering.everyNth" xmlns="">
-<refpurpose>Specifies the interval at which lines are numbered
-  output of verbatim environments</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo linenumbering.everyNth</tag> PI as a child
-    of a “verbatim” element – <tag>programlisting</tag>,
-    <tag>screen</tag>, <tag>synopsis</tag> — to specify
-    the interval at which lines are numbered.</para>
-</refdescription>
-  <refsynopsisdiv>
-    <synopsis><tag class="xmlpi">dbfo linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
-  </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
-      <listitem>
-        <para>FIXME: Specifies numbering interval; a number is
-          output before every <replaceable>N</replaceable>th line</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
-</doc:pi>
-<xsl:template name="pi.dbfo_linenumbering.everyNth">
-  <xsl:param name="node" select="."/>
-  <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis"
-      select="$node/processing-instruction('dbfo')"/>
-    <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
-  </xsl:call-template>
-</xsl:template>
-
-<doc:pi name="dbfo_linenumbering.separator" xmlns="">
-<refpurpose>Specifies the separator text used between line numbers
-  and content in output of verbatim environments</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo linenumbering.separator</tag> PI as a child
-    of a “verbatim” element – <tag>programlisting</tag>,
-    <tag>screen</tag>, <tag>synopsis</tag> — to specify
-    the separator text output between the line numbers and content.</para>
-</refdescription>
-  <refsynopsisdiv>
-    <synopsis><tag class="xmlpi">dbfo linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
-  </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
-      <listitem>
-        <para>FIXME: Specifies the text (zero or more characters)</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
-</doc:pi>
-<xsl:template name="pi.dbfo_linenumbering.separator">
-  <xsl:param name="node" select="."/>
-  <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis"
-      select="$node/processing-instruction('dbfo')"/>
-    <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
-  </xsl:call-template>
-</xsl:template>
-
-<doc:pi name="dbfo_linenumbering.width" xmlns="">
-<refpurpose>Specifies the width set aside for line numbers in
-  output of verbatim environments</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo linenumbering.width</tag> PI as a child
-    of a “verbatim” element – <tag>programlisting</tag>,
-    <tag>screen</tag>, <tag>synopsis</tag> — to specify
-    the width set aside for line numbers.</para>
-</refdescription>
-  <refsynopsisdiv>
-    <synopsis><tag class="xmlpi">dbfo linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
-  </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
-      <listitem>
-        <para>FIXME: Specifies the width (in what units?)</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
-</doc:pi>
-<xsl:template name="pi.dbfo_linenumbering.width">
-  <xsl:param name="node" select="."/>
-  <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis"
-      select="$node/processing-instruction('dbfo')"/>
-    <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+    </itemizedlist>
+  </refsee>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Variablelists.html#ListIndents"
+        >Variable list formatting in print</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_list-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbfo-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'list-presentation'"/>
   </xsl:call-template>
 </xsl:template>
 
 <doc:pi name="dbfo_list-width" xmlns="">
-<refpurpose>Specifies the width of a horizontal simplelist</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo list-width</tag> PI as a child of a
-    <tag>simplelist</tag> whose <tag class="attribute">class</tag>
-    value is <literal>horizontal</literal>, to specify the width
-    of the <tag>simplelist</tag>.</para>
-</refdescription>
+  <refpurpose>Specifies the width of a horizontal simplelist</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo list-width</tag> PI as a child of a
+      <tag>simplelist</tag> whose <tag class="attribute">class</tag>
+      value is <literal>horizontal</literal>, to specify the width
+      of the <tag>simplelist</tag>.</para>
+  </refdescription>
   <refsynopsisdiv>
     <synopsis><tag class="xmlpi">dbfo list-width="<replaceable>width</replaceable>"</tag></synopsis>
   </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
-      <listitem>
-        <para>FIXME: Specifies the <tag>simplelist</tag> width (in what units?)</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the <tag>simplelist</tag> width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
 </doc:pi>
 <xsl:template name="pi.dbfo_list-width">
@@ -421,64 +539,24 @@
 </xsl:template>
 
-<doc:pi name="dbfo_list-presentation" xmlns="">
-<refpurpose>Specifies presentation style for a variablelist or
-  segmentedlist</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo list-presentation</tag> PI as a child of
-    a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
-    control the presentation style for the list (to cause it, for
-    example, to be displayed as a table).</para>
-</refdescription>
-  <refsynopsisdiv>
-    <synopsis><tag class="xmlpi">dbfo list-presentation="list"|"blocks"|"table"</tag></synopsis>
-  </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>list-presentation="list"</term>
-      <listitem>
-        <para>Displayed the list as a list</para>
-      </listitem>
-    </varlistentry>
-    <varlistentry><term>list-presentation="blocks"</term>
-      <listitem>
-        <para>(<tag>variablelist</tag> only) Displays the list as blocks</para>
-      </listitem>
-    </varlistentry>
-    <varlistentry><term>list-presentation="table"</term>
-      <listitem>
-        <para>(<tag>segmentedlist</tag> only) Displays the list as a table</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
-</doc:pi>
-<xsl:template name="pi.dbfo_list-presentation">
-  <xsl:param name="node" select="."/>
-  <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
-    <xsl:with-param name="attribute" select="'list-presentation'"/>
-  </xsl:call-template>
-</xsl:template>
-
 <doc:pi name="dbfo_orientation" xmlns="">
-<refpurpose>Specifies the orientation for table row or cell</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo orientation</tag> PI as a child of an
-    <tag>table</tag> row or cell to specify the orientation
-    (rotation) for the row or cell.</para>
-</refdescription>
+  <refpurpose>Specifies the orientation for table row or cell</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo orientation</tag> PI as a child of an
+      <tag>table</tag> row or cell to specify the orientation
+      (rotation) for the row or cell.</para>
+  </refdescription>
   <refsynopsisdiv>
     <synopsis><tag class="xmlpi">dbfo orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</tag></synopsis>
   </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</term>
-      <listitem>
-        <para>Specifies the number of degrees by which the cell or
-          row is rotated</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>orientation="0"|"90"|"180"|"270"|"-90"|"-180"|"-270"</term>
+        <listitem>
+          <para>Specifies the number of degrees by which the cell or
+            row is rotated</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
 </doc:pi>
 <xsl:template name="pi.dbfo_orientation">
@@ -491,31 +569,32 @@
 
 <doc:pi name="dbfo_pgwide" xmlns="">
-  <refpurpose>Species whether an <tag>equation</tag> or
-    <tag>example</tag> should rendered across the full width of a
-    page</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo pgwide</tag> PI as a child of an
-    <tag>equation</tag> or <tag>example</tag> to specify that the
-    content should rendered across the full width of the page.</para>
-</refdescription>
+  <refpurpose>Specifies if an <tag>equation</tag> or <tag>example</tag> goes across full page width</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo pgwide</tag> PI as a child of an
+      <tag>equation</tag> or <tag>example</tag> to specify that the
+      content should rendered across the full width of the page.</para>
+  </refdescription>
   <refsynopsisdiv>
     <synopsis><tag class="xmlpi">dbfo pgwide="0"|"1"</tag></synopsis>
   </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>pgwide="0"</term>
-      <listitem>
-        <para>If zero, the content is rendered across the current
-        text flow</para>
-      </listitem>
-    </varlistentry>
-    <varlistentry><term>pgwide="1"</term>
-      <listitem>
-        <para>If <code>1</code> (or any non-zero value), the
-          content is rendered across the full width of the page</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>pgwide="0"</term>
+        <listitem>
+          <para>If zero, the content is rendered across the current
+            text flow</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>pgwide="1"</term>
+        <listitem>
+          <para>If <code>1</code> (or any non-zero value), the
+            content is rendered across the full width of the page</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>pgwide.properties</parameter></para>
+  </refsee>
 </doc:pi>
 <xsl:template name="pi.dbfo_pgwide">
@@ -530,29 +609,28 @@
   <refpurpose>Specifies the width for a table <tag>entry</tag> or
     <tag>row</tag></refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo rotated-width</tag> PI as a child of an
-    <tag>entry</tag> or <tag>row</tag> instance to specify the
-    width of that the <tag>entry</tag> or <tag>row</tag>; or
-    use it higher up in table to cause the width to be inherited
-    recursively down.</para>
-</refdescription>
+  <refdescription>
+    <para>Use the <tag>dbfo rotated-width</tag> PI as a child of an
+      <tag>entry</tag> or <tag>row</tag> instance to specify the
+      width of that the <tag>entry</tag> or <tag>row</tag>; or
+      use it higher up in table to cause the width to be inherited
+      recursively down.</para>
+  </refdescription>
   <refsynopsisdiv>
     <synopsis><tag class="xmlpi">dbfo rotated-width="<replaceable>width</replaceable>"</tag></synopsis>
   </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>rotated-width="<replaceable>width</replaceable>"</term>
-      <listitem>
-        <para>FIXME: Specifies the width of a row or cell (in what units?)</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>rotated-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the width of a row or cell (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
 </doc:pi>
 <xsl:template name="pi.dbfo_rotated-width">
   <xsl:param name="node" select="."/>
   <xsl:call-template name="dbfo-attribute">
-    <xsl:with-param name="pis"
-      select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
     <xsl:with-param name="attribute" select="'rotated-width'"/>
   </xsl:call-template>
@@ -560,21 +638,32 @@
 
 <doc:pi name="dbfo_sidebar-width" xmlns="">
-<refpurpose>Specifies the width of a sidebar</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo sidebar-width</tag> PI as a child of a
-    <tag>sidebar</tag> to specify the width of the sidebar.</para>
-</refdescription>
+  <refpurpose>Specifies the width of a sidebar</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo sidebar-width</tag> PI as a child of a
+      <tag>sidebar</tag> to specify the width of the sidebar.</para>
+  </refdescription>
   <refsynopsisdiv>
     <synopsis><tag class="xmlpi">dbfo sidebar-width="<replaceable>width</replaceable>"</tag></synopsis>
   </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>sidebar-width="<replaceable>width</replaceable>"</term>
-      <listitem>
-        <para>FIXME: Specifies the <tag>sidebar</tag> width (in what units?)</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>sidebar-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the <tag>sidebar</tag> width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="params">
+    <para><parameter>sidebar.float.type parameter</parameter>,
+      <parameter>sidebar.float.width parameter</parameter>, 
+      <parameter>sidebar.properties attribute-set</parameter>,
+      <parameter>sidebar.title.properties</parameter>
+    </para>
+  </refsee>
+  <refsee role="tcg">
+    <para><link xlink:href="SideFloats.html#SidebarFloats" >A sidebar as
+        side float</link></para>
+  </refsee>
 </doc:pi>
 <xsl:template name="pi.dbfo_sidebar-width">
@@ -586,25 +675,69 @@
 </xsl:template>
 
+<doc:pi name="dbfo_start" xmlns="">
+  <refpurpose>(obsolete) Sets the starting number on an ordered list</refpurpose>
+  <refdescription>
+    <para><emphasis>This PI is obsolete</emphasis>. The intent of
+      it was to provide a means for setting a specific starting
+      number for an ordered list. Instead of this PI, set a value
+      for the <literal>override</literal> attribute on the first
+      <tag>listitem</tag> in the list; that will have the same
+      effect as what this PI was intended for.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo start="<replaceable>character</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>start="<replaceable>character</replaceable>"</term>
+        <listitem>
+          <para>Specifies the character to use as the starting
+            number; use 0-9, a-z, A-Z, or lowercase or uppercase
+            Roman numerals</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Orderedlists.html#ListStartNum"
+        >List starting number</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbfo_start">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbfo')"/>
+    <xsl:with-param name="attribute" select="'start'"/>
+  </xsl:call-template>
+</xsl:template>
+
 <doc:pi name="dbfo_table-width" xmlns="">
-<refpurpose>Specifies the width for a table or for revhistory
-  output</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo table-width</tag> PI as a child of a
-    <tag>table</tag> or <tag>revhistory</tag> instance (which is
-    rendered as a table in output) to specify the width of the
-    table in output.</para>
-</refdescription>
+  <refpurpose>Specifies the width for a table or for revhistory
+    output</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo table-width</tag> PI as a child or
+      sibling of a <tag>table</tag>, or as a child of an
+      <tag>informaltable</tag>, <tag>entrybl</tag>, or
+      <tag>revhistory</tag> instance (which is rendered as a table
+      in output) to specify the width of the table in output.</para>
+  </refdescription>
   <refsynopsisdiv>
     <synopsis><tag class="xmlpi">dbfo table-width="<replaceable>width</replaceable>"</tag></synopsis>
   </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
-      <listitem>
-        <para>FIXME: Specifies the table width (in what units?)</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the table width (including units or as a percentage)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Tables.html#TableWidth"
+        >Table width</link></para>
+  </refsee>
 </doc:pi>
 <xsl:template name="pi.dbfo_table-width">
@@ -617,22 +750,27 @@
 
 <doc:pi name="dbfo_term-width" xmlns="">
-<refpurpose>Specifies the term width for a variablelist</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo term-width</tag> PI as a child of a
-    <tag>variablelist</tag> to specify the width for
-    <tag>term</tag> output.</para>
-</refdescription>
+  <refpurpose>Specifies the term width for a variablelist</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo term-width</tag> PI as a child of a
+      <tag>variablelist</tag> to specify the width for
+      <tag>term</tag> output.</para>
+  </refdescription>
   <refsynopsisdiv>
     <synopsis><tag class="xmlpi">dbfo term-width="<replaceable>width</replaceable>"</tag></synopsis>
   </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
-      <listitem>
-        <para>FIXME: Specifies the term width (in what units?)</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the term width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="Variablelists.html#ListIndents"
+        >Variable list formatting in print</link></para>
+  </refsee>
 </doc:pi>
 <xsl:template name="pi.dbfo_term-width">
@@ -645,28 +783,36 @@
 
 <doc:pi name="dbfo_toc" xmlns="">
-<refpurpose>Species whether a TOC should be generated for a qandaset</refpurpose>
-<refdescription>
-  <para>Use the <tag>dbfo toc</tag> PI as a child of a
-    <tag>jandaset</tag> to specify whether a table of contents
-    (TOC) is generated for the <tag>qandaset</tag>.</para>
-</refdescription>
+  <refpurpose>Species whether a TOC should be generated for a qandaset</refpurpose>
+  <refdescription>
+    <para>Use the <tag>dbfo toc</tag> PI as a child of a
+      <tag>qandaset</tag> to specify whether a table of contents
+      (TOC) is generated for the <tag>qandaset</tag>.</para>
+  </refdescription>
   <refsynopsisdiv>
     <synopsis><tag class="xmlpi">dbfo toc="0"|"1"</tag></synopsis>
   </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>toc="0"</term>
-      <listitem>
-        <para>If zero, no TOC is generated</para>
-      </listitem>
-    </varlistentry>
-    <varlistentry><term>toc="1"</term>
-      <listitem>
-        <para>If <code>1</code> (or any non-zero value),
-          a TOC is generated</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>toc="0"</term>
+        <listitem>
+          <para>If zero, no TOC is generated</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>toc="1"</term>
+        <listitem>
+          <para>If <code>1</code> (or any non-zero value),
+            a TOC is generated</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="QandAtoc.html"
+        >Q and A list of questions</link>,
+      <link role="tcg"
+        xlink:href="QandAformat.html"
+        >Q and A formatting</link></para>
+  </refsee>
 </doc:pi>
 <xsl:template name="pi.dbfo_toc">
@@ -678,34 +824,35 @@
 </xsl:template>
 
-<!-- ==================================================================== -->
-
 <doc:pi name="dbfo-need" xmlns="">
-<refpurpose>Specify a need for space (a kind of soft page break)</refpurpose>
-<refdescription>
-  <para>A “need” is a request for space on a page.  If the
-    requested space is not available, the page breaks and the
-    content that follows the need request appears on the next
-    page. If the requested space is available, then the request is
-    ignored.</para>
-</refdescription>
-  <refsynopsisdiv>
-    <synopsis><tag class="xmlpi">dbfo-need height="<replaceable>n</replaceable>"</tag></synopsis>
-    <synopsis><tag class="xmlpi">dbfo-need space-before="<replaceable>n</replaceable>"</tag></synopsis>
-  </refsynopsisdiv>
-<refparameter>
-  <variablelist>
-    <varlistentry><term>height="<replaceable>n</replaceable>"</term>
-      <listitem>
-        <para>FIXME: the amount of height(?) needed? In what units? pt?.</para>
-      </listitem>
-    </varlistentry>
-    <varlistentry><term>space-before"<replaceable>n</replaceable>"</term>
-      <listitem>
-        <para>FIXME: the amount of space needed before the
-          [something]? In what units? pt?.</para>
-      </listitem>
-    </varlistentry>
-  </variablelist>
-</refparameter>
+  <refpurpose>Specify a need for space (a kind of soft page break)</refpurpose>
+  <refdescription>
+    <para>A “need” is a request for space on a page.  If the
+      requested space is not available, the page breaks and the
+      content that follows the need request appears on the next
+      page. If the requested space is available, then no page break
+      is inserted.</para>
+  </refdescription>
+  <refsynopsisdiv>
+    <synopsis><tag class="xmlpi">dbfo-need height="<replaceable>n</replaceable>" [space-before="<replaceable>n</replaceable>"]</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter>
+    <variablelist>
+      <varlistentry><term>height="<replaceable>n</replaceable>"</term>
+        <listitem>
+          <para>The amount of height needed (including units)</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>space-before"<replaceable>n</replaceable>"</term>
+        <listitem>
+          <para>The amount of extra vertical space to add (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee role="tcg">
+    <para><link role="tcg"
+        xlink:href="PageBreaking.html#SoftPageBreaks"
+        >Soft page breaks</link></para>
+  </refsee>
 </doc:pi>
 <xsl:template name="pi.dbfo-need">
@@ -744,6 +891,6 @@
     </xsl:when>
     <xsl:when test="$pi-before != '' and
-                    not(following-sibling::listitem) and
-                    not(following-sibling::step)">
+      not(following-sibling::listitem) and
+      not(following-sibling::step)">
       <fo:block space-after="0pt" space-before="{$pi-before}">
         <xsl:copy-of select="$spacer"/>
@@ -752,39 +899,39 @@
     <xsl:when test="following-sibling::para">
       <fo:block space-after="0pt" 
-                xsl:use-attribute-sets="normal.para.spacing">
+        xsl:use-attribute-sets="normal.para.spacing">
         <xsl:copy-of select="$spacer"/>
       </fo:block>
     </xsl:when>
     <xsl:when test="following-sibling::table or
-                    following-sibling::figure or
-                    following-sibling::example or
-                    following-sibling::equation">
+      following-sibling::figure or
+      following-sibling::example or
+      following-sibling::equation">
       <fo:block space-after="0pt" 
-                xsl:use-attribute-sets="formal.object.properties">
+        xsl:use-attribute-sets="formal.object.properties">
         <xsl:copy-of select="$spacer"/>
       </fo:block>
     </xsl:when>
     <xsl:when test="following-sibling::informaltable or
-                    following-sibling::informalfigure or
-                    following-sibling::informalexample or
-                    following-sibling::informalequation">
+      following-sibling::informalfigure or
+      following-sibling::informalexample or
+      following-sibling::informalequation">
       <fo:block space-after="0pt" 
-                xsl:use-attribute-sets="informal.object.properties">
+        xsl:use-attribute-sets="informal.object.properties">
         <xsl:copy-of select="$spacer"/>
       </fo:block>
     </xsl:when>
     <xsl:when test="following-sibling::itemizedlist or
-                    following-sibling::orderedlist or
-                    following-sibling::variablelist or
-                    following-sibling::simplelist">
+      following-sibling::orderedlist or
+      following-sibling::variablelist or
+      following-sibling::simplelist">
       <fo:block space-after="0pt" 
-                xsl:use-attribute-sets="informal.object.properties">
+        xsl:use-attribute-sets="informal.object.properties">
         <xsl:copy-of select="$spacer"/>
       </fo:block>
     </xsl:when>
     <xsl:when test="following-sibling::listitem or
-                    following-sibling::step">
+      following-sibling::step">
       <fo:list-item space-after="0pt" 
-                xsl:use-attribute-sets="informal.object.properties">
+        xsl:use-attribute-sets="informal.object.properties">
         <fo:list-item-label/>
         <fo:list-item-body start-indent="0pt" end-indent="0pt">
@@ -794,11 +941,11 @@
     </xsl:when>
     <xsl:when test="following-sibling::sect1 or
-                    following-sibling::sect2 or
-                    following-sibling::sect3 or
-                    following-sibling::sect4 or
-                    following-sibling::sect5 or
-                    following-sibling::section">
+      following-sibling::sect2 or
+      following-sibling::sect3 or
+      following-sibling::sect4 or
+      following-sibling::sect5 or
+      following-sibling::section">
       <fo:block space-after="0pt" 
-                xsl:use-attribute-sets="section.title.properties">
+        xsl:use-attribute-sets="section.title.properties">
         <xsl:copy-of select="$spacer"/>
       </fo:block>
@@ -816,9 +963,9 @@
     </xsl:when>
     <xsl:when test="following-sibling::listitem or
-                    following-sibling::step">
+      following-sibling::step">
       <fo:list-item space-before.precedence="force"
-                space-before="-{$height}"
-                space-after="0pt"
-                space-after.precedence="force">
+        space-before="-{$height}"
+        space-after="0pt"
+        space-after.precedence="force">
         <fo:list-item-label/>
         <fo:list-item-body start-indent="0pt" end-indent="0pt"/>
@@ -827,7 +974,7 @@
     <xsl:otherwise>
       <fo:block space-before.precedence="force"
-                space-before="-{$height}"
-                space-after="0pt"
-                space-after.precedence="force">
+        space-before="-{$height}"
+        space-after="0pt"
+        space-after.precedence="force">
       </fo:block>
     </xsl:otherwise>
@@ -849,4 +996,5 @@
 
 <!-- ==================================================================== -->
+
 <xsl:template match="processing-instruction()">
 </xsl:template>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/table.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/table.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/table.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -23,29 +23,20 @@
      ******************************************************************** -->
 
-<doc:reference xmlns="">
-<referenceinfo>
-<releaseinfo role="meta">
-$Id$
-</releaseinfo>
-<author><surname>Walsh</surname>
-<firstname>Norman</firstname></author>
-<copyright><year>1999</year><year>2000</year>
-<holder>Norman Walsh</holder>
-</copyright>
-</referenceinfo>
-<title>Formatting Object Table Reference</title>
-
-<partintro id="partintro">
-<title>Introduction</title>
-
-<para>This is technical reference documentation for the FO
-table-processing templates in the DocBook XSL Stylesheets.</para>
-
-<para>This is not intended to be <quote>user</quote> documentation.
-It is provided for developers writing customization layers for the
-stylesheets, and for anyone who's interested in <quote>how it
-works</quote>.</para>
-
-</partintro>
+<doc:reference xmlns="" xml:id="table-templates">
+  <?dbhtml dir="fo"?>
+  <info>
+    <title>Formatting Object Table Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is technical reference documentation for the FO
+      table-processing templates in the DocBook XSL Stylesheets.</para>
+    <para>This is not intended to be user documentation.  It is
+      provided for developers writing customization layers for the
+      stylesheets.</para>
+  </partintro>
 </doc:reference>
 
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/verbatim.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/verbatim.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/verbatim.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -351,5 +351,6 @@
 <xsl:template match="node()|@*" mode="hyphenate.verbatim">
   <xsl:copy>
-    <xsl:apply-templates select="node()|@*" mode="hyphenate.verbatim"/>
+    <xsl:copy-of select="@*"/>
+    <xsl:apply-templates mode="hyphenate.verbatim"/>
   </xsl:copy>
 </xsl:template>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/xref.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/xref.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/fo/xref.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -719,4 +719,15 @@
 </xsl:template>
 
+<xsl:template match="area|areaset" mode="xref-to">
+  <xsl:param name="referrer"/>
+  <xsl:param name="xrefstyle"/>
+
+  <xsl:call-template name="callout-bug">
+    <xsl:with-param name="conum">
+      <xsl:apply-templates select="." mode="conumber"/>
+    </xsl:with-param>
+  </xsl:call-template>
+</xsl:template>
+
 <xsl:template match="book" mode="xref-to">
   <xsl:param name="referrer"/>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/lib/lib.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/lib/lib.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/lib/lib.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -1,4 +1,3 @@
-<?xml version="1.0"?>
-
+<?xml version="1.0" encoding="ASCII"?>
 <!-- ********************************************************************
      $Id$
@@ -12,7 +11,5 @@
 
      ******************************************************************** -->
-
-
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saxon="http://icl.com/saxon" xmlns:dyn="http://exslt.org/dynamic" xmlns:src="http://nwalsh.com/xmlns/litprog/fragment" exclude-result-prefixes="src" version="1.0">
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:saxon="http://icl.com/saxon" xmlns:ssb="http://sideshowbarker.net/ns" xmlns:dyn="http://exslt.org/dynamic" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:src="http://nwalsh.com/xmlns/litprog/fragment" xmlns="http://docbook.org/ns/docbook" exclude-result-prefixes="src" version="1.0">
 
 <xsl:template name="dot.count">
@@ -313,5 +310,4 @@
   </xsl:choose>
 </xsl:template>
-
   <xsl:template name="str.tokenize.keep.delimiters">
     <xsl:param name="string" select="''"/>
@@ -320,27 +316,25 @@
       <xsl:when test="not($string)"/>
       <xsl:when test="not($delimiters)">
-	<xsl:call-template name="str.tokenize.keep.delimiters-characters">
-	  <xsl:with-param name="string" select="$string"/>
-	</xsl:call-template>
+        <xsl:call-template name="str.tokenize.keep.delimiters-characters">
+          <xsl:with-param name="string" select="$string"/>
+        </xsl:call-template>
       </xsl:when>
       <xsl:otherwise>
-	<xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
-	  <xsl:with-param name="string" select="$string"/>
-	  <xsl:with-param name="delimiters" select="$delimiters"/>
-	</xsl:call-template>
+        <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
+          <xsl:with-param name="string" select="$string"/>
+          <xsl:with-param name="delimiters" select="$delimiters"/>
+        </xsl:call-template>
       </xsl:otherwise>
     </xsl:choose>
   </xsl:template>
-  
   <xsl:template name="str.tokenize.keep.delimiters-characters">
     <xsl:param name="string"/>
     <xsl:if test="$string">
-      <token><xsl:value-of select="substring($string, 1, 1)"/></token>
+      <ssb:token><xsl:value-of select="substring($string, 1, 1)"/></ssb:token>
       <xsl:call-template name="str.tokenize.keep.delimiters-characters">
-	<xsl:with-param name="string" select="substring($string, 2)"/>
+        <xsl:with-param name="string" select="substring($string, 2)"/>
       </xsl:call-template>
     </xsl:if>
   </xsl:template>
-  
   <xsl:template name="str.tokenize.keep.delimiters-delimiters">
     <xsl:param name="string"/>
@@ -349,25 +343,25 @@
     <xsl:choose>
       <xsl:when test="not($delimiter)">
-	<token><xsl:value-of select="$string"/></token>
+        <ssb:token><xsl:value-of select="$string"/></ssb:token>
       </xsl:when>
       <xsl:when test="contains($string, $delimiter)">
-	<xsl:if test="not(starts-with($string, $delimiter))">
-	  <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
-	    <xsl:with-param name="string" select="substring-before($string, $delimiter)"/>
-	    <xsl:with-param name="delimiters" select="substring($delimiters, 2)"/>
-	  </xsl:call-template>
-	</xsl:if>
-	<!-- output each delimiter -->
-	<xsl:value-of select="$delimiter"/>
-	<xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
-	  <xsl:with-param name="string" select="substring-after($string, $delimiter)"/>
-	  <xsl:with-param name="delimiters" select="$delimiters"/>
-	</xsl:call-template>
+        <xsl:if test="not(starts-with($string, $delimiter))">
+          <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
+            <xsl:with-param name="string" select="substring-before($string, $delimiter)"/>
+            <xsl:with-param name="delimiters" select="substring($delimiters, 2)"/>
+          </xsl:call-template>
+        </xsl:if>
+        <!-- output each delimiter -->
+        <xsl:value-of select="$delimiter"/>
+        <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
+          <xsl:with-param name="string" select="substring-after($string, $delimiter)"/>
+          <xsl:with-param name="delimiters" select="$delimiters"/>
+        </xsl:call-template>
       </xsl:when>
       <xsl:otherwise>
-	<xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
-	  <xsl:with-param name="string" select="$string"/>
-	  <xsl:with-param name="delimiters" select="substring($delimiters, 2)"/>
-	</xsl:call-template>
+        <xsl:call-template name="str.tokenize.keep.delimiters-delimiters">
+          <xsl:with-param name="string" select="$string"/>
+          <xsl:with-param name="delimiters" select="substring($delimiters, 2)"/>
+        </xsl:call-template>
       </xsl:otherwise>
     </xsl:choose>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/admon.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/admon.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/admon.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -114,10 +114,10 @@
     </xsl:if>
 
-    <h3 class="title">
-      <xsl:call-template name="anchor"/>
-      <xsl:if test="$admon.textlabel != 0 or title or info/title">
+    <xsl:if test="$admon.textlabel != 0 or title or info/title">
+      <h3 class="title">
+        <xsl:call-template name="anchor"/>
         <xsl:apply-templates select="." mode="object.title.markup"/>
-      </xsl:if>
-    </h3>
+      </h3>
+    </xsl:if>
 
     <xsl:apply-templates/>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/autotoc.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/autotoc.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/autotoc.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -310,4 +310,5 @@
       <xsl:call-template name="href.target">
         <xsl:with-param name="context" select="$toc-context"/>
+        <xsl:with-param name="toc-context" select="$toc-context"/>
       </xsl:call-template>
     </xsl:attribute>
@@ -483,5 +484,7 @@
       <a>
         <xsl:attribute name="href">
-          <xsl:call-template name="href.target"/>
+          <xsl:call-template name="href.target">
+            <xsl:with-param name="toc-context" select="$toc-context"/>
+          </xsl:call-template>
         </xsl:attribute>
         <xsl:copy-of select="$title"/>
@@ -506,4 +509,5 @@
       <xsl:call-template name="href.target">
         <xsl:with-param name="object" select=".."/>
+        <xsl:with-param name="toc-context" select="$toc-context"/>
       </xsl:call-template>
     </xsl:attribute>
@@ -533,4 +537,5 @@
           <xsl:call-template name="href.target">
             <xsl:with-param name="object" select="$node"/>
+            <xsl:with-param name="toc-context" select="$toc-context"/>
           </xsl:call-template>
         </xsl:attribute>
@@ -603,5 +608,7 @@
     <a>
       <xsl:attribute name="href">
-        <xsl:call-template name="href.target"/>
+        <xsl:call-template name="href.target">
+          <xsl:with-param name="toc-context" select="$toc-context"/>
+        </xsl:call-template>
       </xsl:attribute>
       <xsl:apply-templates select="." mode="titleabbrev.markup"/>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/chunk-code.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/chunk-code.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/chunk-code.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -65,5 +65,5 @@
 
   <xsl:variable name="dbhtml-filename">
-    <xsl:call-template name="dbhtml-filename"/>
+    <xsl:call-template name="pi.dbhtml_filename"/>
   </xsl:variable>
 
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/chunk-common.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/chunk-common.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/chunk-common.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -738,5 +738,34 @@
   <xsl:param name="context" select="."/>
   <xsl:param name="object" select="."/>
-
+  <xsl:param name="toc-context" select="."/>
+  <!-- * If $toc-context contains some node other than the current node, -->
+  <!-- * it means we're processing a link in a TOC. In that case, to -->
+  <!-- * ensure the link will work correctly, we need to take a look at -->
+  <!-- * where the file containing the TOC will get written, and where -->
+  <!-- * the file that's being linked to will get written. -->
+  <xsl:variable name="toc-output-dir">
+    <xsl:if test="not($toc-context = .)">
+      <!-- * Get the $toc-context node and all its ancestors, look down -->
+      <!-- * through them to find the last/closest node to the -->
+      <!-- * toc-context node that has a "dbhtml dir" PI, and get the -->
+      <!-- * directory name from that. That's the name of the directory -->
+      <!-- * to which the current toc output file will get written. -->
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="$toc-context/ancestor-or-self::*[processing-instruction('dbhtml')[contains(.,'dir')]][last()]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="linked-file-output-dir">
+    <xsl:if test="not($toc-context = .)">
+      <!-- * Get the current node and all its ancestors, look down -->
+      <!-- * through them to find the last/closest node to the current -->
+      <!-- * node that has a "dbhtml dir" PI, and get the directory name -->
+      <!-- * from that.  That's the name of the directory to which the -->
+      <!-- * file that's being linked to will get written. -->
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="ancestor-or-self::*[processing-instruction('dbhtml')[contains(.,'dir')]][last()]"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
   <xsl:variable name="href.to.uri">
     <xsl:call-template name="href.target.uri">
@@ -744,5 +773,4 @@
     </xsl:call-template>
   </xsl:variable>
-
   <xsl:variable name="href.from.uri">
     <xsl:call-template name="href.target.uri">
@@ -750,18 +778,56 @@
     </xsl:call-template>
   </xsl:variable>
-  
-  <!--
-  <xsl:message>href.to.uri: <xsl:value-of select="$href.to.uri"/></xsl:message>
-  <xsl:message>href.from.uri: <xsl:value-of select="$href.from.uri"/></xsl:message>
-  -->
-
+  <!-- * <xsl:message>toc-context: <xsl:value-of select="local-name($toc-context)"/></xsl:message> -->
+  <!-- * <xsl:message>node: <xsl:value-of select="local-name(.)"/></xsl:message> -->
+  <!-- * <xsl:message>context: <xsl:value-of select="local-name($context)"/></xsl:message> -->
+  <!-- * <xsl:message>object: <xsl:value-of select="local-name($object)"/></xsl:message> -->
+  <!-- * <xsl:message>toc-output-dir: <xsl:value-of select="$toc-output-dir"/></xsl:message> -->
+  <!-- * <xsl:message>linked-file-output-dir: <xsl:value-of select="$linked-file-output-dir"/></xsl:message> -->
+  <!-- * <xsl:message>href.to.uri: <xsl:value-of select="$href.to.uri"/></xsl:message> -->
+  <!-- * <xsl:message>href.from.uri: <xsl:value-of select="$href.from.uri"/></xsl:message> -->
   <xsl:variable name="href.to">
-    <xsl:call-template name="trim.common.uri.paths">
-      <xsl:with-param name="uriA" select="$href.to.uri"/>
-      <xsl:with-param name="uriB" select="$href.from.uri"/>
-      <xsl:with-param name="return" select="'A'"/>
-    </xsl:call-template>
-  </xsl:variable>
-
+    <xsl:choose>
+      <!-- * 2007-07-19, MikeSmith: Added the following conditional to -->
+      <!-- * deal with a problem case for links in TOCs. It checks to see -->
+      <!-- * if the output dir that a TOC will get written to is -->
+      <!-- * different from the output dir of the file being linked to. -->
+      <!-- * If it is different, we do not call trim.common.uri.paths. -->
+      <!-- *  -->
+      <!-- * Reason why I added that conditional is: I ran into a bug for -->
+      <!-- * this case: -->
+      <!-- *  -->
+      <!-- * 1. we are chunking into separate dirs -->
+      <!-- *  -->
+      <!-- * 2. output for the TOC is written to current dir, but the file -->
+      <!-- *    being linked to is written to some subdir "foo". -->
+      <!-- *  -->
+      <!-- * For that case, links to that file in that TOC did not show -->
+      <!-- * the correct path - they omitted the "foo". -->
+      <!-- *  -->
+      <!-- * The cause of that problem was that the trim.common.uri.paths -->
+      <!-- * template[1] was being called under all conditions. But it's -->
+      <!-- * apparent that we don't want to call trim.common.uri.paths in -->
+      <!-- * the case where a linked file is being written to a different -->
+      <!-- * directory than the TOC that contains the link, because doing -->
+      <!-- * so will cause a necessary (not redundant) directory-name -->
+      <!-- * part of the link to get inadvertently trimmed, resulting in -->
+      <!-- * a broken link to that file. Thus, added the conditional. -->
+      <!-- *  -->
+      <!-- * [1] The purpose of the trim.common.uri.paths template is to -->
+      <!-- * prevent cases where, if we didn't call it, we end up with -->
+      <!-- * unnecessary, redundant directory names getting output; for -->
+      <!-- * example, "foo/foo/refname.html". -->
+      <xsl:when test="not($toc-output-dir = $linked-file-output-dir)">
+        <xsl:value-of select="$href.to.uri"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:call-template name="trim.common.uri.paths">
+          <xsl:with-param name="uriA" select="$href.to.uri"/>
+          <xsl:with-param name="uriB" select="$href.from.uri"/>
+          <xsl:with-param name="return" select="'A'"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
   <xsl:variable name="href.from">
     <xsl:call-template name="trim.common.uri.paths">
@@ -771,5 +837,4 @@
     </xsl:call-template>
   </xsl:variable>
-
   <xsl:variable name="depth">
     <xsl:call-template name="count.uri.path.depth">
@@ -777,5 +842,4 @@
     </xsl:call-template>
   </xsl:variable>
-
   <xsl:variable name="href">
     <xsl:call-template name="copy-string">
@@ -785,5 +849,4 @@
     <xsl:value-of select="$href.to"/>
   </xsl:variable>
-
   <!--
   <xsl:message>
@@ -800,5 +863,4 @@
   </xsl:message>
   -->
-
   <xsl:value-of select="$href"/>
 </xsl:template>
@@ -1445,3 +1507,39 @@
 </xsl:template>
 
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-dir">
+  <xsl:param name="context" select="."/>
+  <!-- directories are now inherited from previous levels -->
+  <xsl:variable name="ppath">
+    <xsl:if test="$context/parent::*">
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="$context/parent::*"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="path">
+    <xsl:call-template name="pi.dbhtml_dir">
+      <xsl:with-param name="node" select="$context"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$path = ''">
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+        <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'">
+          <xsl:text>/</xsl:text>
+        </xsl:if>
+      </xsl:if>
+      <xsl:value-of select="$path"/>
+      <xsl:text>/</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
 </xsl:stylesheet>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/chunktoc.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/chunktoc.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/chunktoc.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -50,6 +50,6 @@
   <xsl:variable name="chunk" select="$chunks//tocentry[@linkend=$id]"/>
   <xsl:variable name="filename">
-    <xsl:call-template name="dbhtml-filename">
-      <xsl:with-param name="pis" select="$chunk/processing-instruction('dbhtml')"/>
+    <xsl:call-template name="pi.dbhtml_filename">
+      <xsl:with-param name="node" select="$chunk"/>
     </xsl:call-template>
   </xsl:variable>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/component.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/component.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/component.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -38,9 +38,11 @@
   <xsl:element name="h{$level+1}" namespace="http://www.w3.org/1999/xhtml">
     <xsl:attribute name="class">title</xsl:attribute>
-    <xsl:call-template name="anchor">
-      <xsl:with-param name="node" select="$node"/>
-      <xsl:with-param name="conditional" select="0"/>
-    </xsl:call-template>
-    <xsl:apply-templates select="$node" mode="object.title.markup">
+    <xsl:if test="$generate.id.attributes = 0">
+      <xsl:call-template name="anchor">
+	<xsl:with-param name="node" select="$node"/>
+	<xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </xsl:if>
+      <xsl:apply-templates select="$node" mode="object.title.markup">
       <xsl:with-param name="allow-anchors" select="1"/>
     </xsl:apply-templates>
@@ -351,5 +353,5 @@
 </xsl:template>
 
-<xsl:template match="article/title" mode="titlepage.mode" priority="2">
+<xsl:template match="article/title|article/articleinfo/title" mode="titlepage.mode" priority="2">
   <xsl:call-template name="component.title">
     <xsl:with-param name="node" select="ancestor::article[1]"/>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/division.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/division.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/division.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -214,9 +214,11 @@
   <h1>
     <xsl:attribute name="class">title</xsl:attribute>
-    <xsl:call-template name="anchor">
-      <xsl:with-param name="node" select="$node"/>
-      <xsl:with-param name="conditional" select="0"/>
-    </xsl:call-template>
-    <xsl:apply-templates select="$node" mode="object.title.markup">
+    <xsl:if test="$generate.id.attributes = 0">
+      <xsl:call-template name="anchor">
+	<xsl:with-param name="node" select="$node"/>
+	<xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
+    </xsl:if>
+      <xsl:apply-templates select="$node" mode="object.title.markup">
       <xsl:with-param name="allow-anchors" select="1"/>
     </xsl:apply-templates>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/formal.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/formal.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/formal.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -104,5 +104,7 @@
     <div class="{$class}">
       <xsl:if test="$spacing.paras != 0"><p/></xsl:if>
-      <xsl:call-template name="anchor"/>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
       <xsl:apply-templates/>
   
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/graphics.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/graphics.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/graphics.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -222,7 +222,6 @@
 
   <xsl:variable name="img.src.path.pi">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="../processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'img.src.path'"/>
+    <xsl:call-template name="pi.dbhtml_img.src.path">
+      <xsl:with-param name="node" select=".."/>
     </xsl:call-template>
   </xsl:variable>
@@ -599,7 +598,6 @@
 
   <xsl:variable name="bgcolor">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="../processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'background-color'"/>
+    <xsl:call-template name="pi.dbhtml_background-color">
+      <xsl:with-param name="node" select=".."/>
     </xsl:call-template>
   </xsl:variable>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/lists.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/lists.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/lists.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -197,8 +197,5 @@
 <xsl:template match="variablelist">
   <xsl:variable name="pi-presentation">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'list-presentation'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_list-presentation"/>
   </xsl:variable>
 
@@ -218,22 +215,13 @@
 
   <xsl:variable name="list-width">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'list-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_list-width"/>
   </xsl:variable>
 
   <xsl:variable name="term-width">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'term-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_term-width"/>
   </xsl:variable>
 
   <xsl:variable name="table-summary">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'table-summary'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
   </xsl:variable>
 
@@ -335,14 +323,12 @@
 <xsl:template match="varlistentry" mode="varlist-table">
   <xsl:variable name="presentation">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="../processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'term-presentation'"/>
+    <xsl:call-template name="pi.dbhtml_term-presentation">
+      <xsl:with-param name="node" select=".."/>
     </xsl:call-template>
   </xsl:variable>
 
   <xsl:variable name="separator">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="../processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'term-separator'"/>
+    <xsl:call-template name="pi.dbhtml_term-separator">
+      <xsl:with-param name="node" select=".."/>
     </xsl:call-template>
   </xsl:variable>
@@ -463,8 +449,8 @@
     <xsl:choose>
       <xsl:when test="processing-instruction('dbchoice')">
-	<xsl:call-template name="select.choice.separator"/>
-      </xsl:when>
-      <xsl:otherwise>
-	<!-- empty -->
+        <xsl:call-template name="select.choice.separator"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <!-- empty -->
       </xsl:otherwise>
     </xsl:choose>
@@ -744,8 +730,5 @@
 <xsl:template match="segmentedlist">
   <xsl:variable name="presentation">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'list-presentation'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_list-presentation"/>
   </xsl:variable>
 
@@ -815,15 +798,9 @@
 <xsl:template match="segmentedlist" mode="seglist-table">
   <xsl:variable name="table-summary">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'table-summary'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
   </xsl:variable>
 
   <xsl:variable name="list-width">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'list-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_list-width"/>
   </xsl:variable>
 
@@ -1053,3 +1030,16 @@
 <!-- ==================================================================== -->
 
+<xsl:template name="orderedlist-starting-number">
+  <xsl:param name="list" select="."/>
+  <xsl:variable name="pi-start">
+    <xsl:call-template name="pi.dbhtml_start">
+      <xsl:with-param name="node" select="$list"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:call-template name="output-orderedlist-starting-number">
+    <xsl:with-param name="list" select="$list"/>
+    <xsl:with-param name="pi-start" select="$pi-start"/>
+  </xsl:call-template>
+</xsl:template>
+
 </xsl:stylesheet>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/math.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/math.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/math.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -268,7 +268,6 @@
 <xsl:template name="tex.math.output.delims">
   <xsl:variable name="pi.delims">
-    <xsl:call-template name="pi-attribute">
-      <xsl:with-param name="pis" select=".//processing-instruction('dbtex')"/>
-      <xsl:with-param name="attribute" select="'delims'"/>
+    <xsl:call-template name="pi.dbtex_delims">
+      <xsl:with-param name="node" select="descendant-or-self::*"/>
     </xsl:call-template>
   </xsl:variable>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/param.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/param.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/param.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -3,5 +3,5 @@
 <!--from the HTML stylesheets.-->
 <!-- This file is generated from param.xweb -->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:src="http://nwalsh.com/xmlns/litprog/fragment" xmlns="http://docbook.org/ns/docbook" exclude-result-prefixes="src" version="1.0">
 
 <!-- ********************************************************************
@@ -66,5 +66,5 @@
                      }
 </xsl:param>
-<xsl:param name="annotation.js" select="'http://docbook.sourceforge.net/release/script/AnchorPosition.js             http://docbook.sourceforge.net/release/script/PopupWindow.js'"/>
+<xsl:param name="annotation.js" select="'http://docbook.sourceforge.net/release/script/AnchorPosition.js http://docbook.sourceforge.net/release/script/PopupWindow.js'"/>
 <xsl:param name="annotation.graphic.open" select="'http://docbook.sourceforge.net/release/images/annot-open.png'"/>
 <xsl:param name="annotation.graphic.close" select="'http://docbook.sourceforge.net/release/images/annot-close.png'"/>
@@ -122,5 +122,5 @@
 <xsl:param name="ebnf.table.border" select="1"/>
 <xsl:param name="ebnf.assignment">
-<code>::=</code>
+<code xmlns="http://www.w3.org/1999/xhtml">::=</code>
 </xsl:param>
 
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/pi.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/pi.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/pi.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -2,5 +2,5 @@
 <!--This file was created automatically by html2xhtml-->
 <!--from the HTML stylesheets.-->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" version="1.0">
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:doc="http://nwalsh.com/xsl/documentation/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="doc" version="1.0">
 
 <!-- ********************************************************************
@@ -14,130 +14,856 @@
      ******************************************************************** -->
 
-<xsl:template match="processing-instruction()">
-</xsl:template>
-
-<xsl:template match="processing-instruction('dbhtml')">
-  <!-- nop -->
-</xsl:template>
+<doc:reference xmlns=""><info xmlns="http://www.w3.org/1999/xhtml"><title>HTML Processing Instruction Reference</title>
+    <releaseinfo role="meta">
+      $Id$
+    </releaseinfo>
+  </info>
+  <partintro xmlns="http://www.w3.org/1999/xhtml" xml:id="partintro">
+    <title>Introduction</title>
+    <para>This is generated reference documentation for all
+      user-specifiable processing instructions (PIs) in the DocBook
+      XSL stylesheets for HTML output.
+      <note>
+        <para>You add these PIs at particular points in a document to
+          cause specific &#8220;exceptions&#8221; to formatting/output behavior. To
+          make global changes in formatting/output behavior across an
+          entire document, it&#8217;s better to do it by setting an
+          appropriate stylesheet parameter (if there is one).</para>
+      </note>
+    </para>
+  </partintro>
+</doc:reference>
 
 <!-- ==================================================================== -->
 
-<xsl:template name="dbhtml-attribute">
-  <xsl:param name="pis" select="processing-instruction('dbhtml')"/>
-  <xsl:param name="attribute">filename</xsl:param>
-
+<doc:pi xmlns="" name="dbhtml_background-color">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets background color for an image</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml background-color</tag> PI before or
+      after an image (<tag>graphic</tag>, <tag>inlinegraphic</tag>,
+      <tag>imagedata</tag>, or <tag>videodata</tag> element) as a
+      sibling to the element, to set a background color for the
+      image.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml background-color="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>background-color="<replaceable>color</replaceable>"</term>
+        <listitem>
+          <para>An HTML color value</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="BGcolor.html">Background color</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_background-color">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'background-color'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_bgcolor">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets background color on a table row or table cell</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml bgcolor</tag> PI as child of a table row
+      or cell to set a background color for that table row or cell.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml bgcolor="<replaceable>color</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>bgcolor="<replaceable>color</replaceable>"</term>
+        <listitem>
+          <para>An HTML color value</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="BGtableColor.html#CellBGColor">Cell background color</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_bgcolor">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'bgcolor'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_cellpadding">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies cellpadding in table or qandaset output</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml cellpadding</tag> PI as a child of a
+      <tag>table</tag> or <tag>qandaset</tag> to specify the value
+      for the HTML <literal>cellpadding</literal> attribute in the
+      output HTML table.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml cellpadding="<replaceable>number</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>cellpadding="<replaceable>number</replaceable>"</term>
+        <listitem>
+          <para>Specifies the cellpadding</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>html.cellpadding</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="CellSpacing.html">Cell spacing and cell padding</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_cellpadding">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'cellpadding'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_cellspacing">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies cellspacing in table or qandaset output</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml cellspacing</tag> PI as a child of a
+      <tag>table</tag> or <tag>qandaset</tag> to specify the value
+      for the HTML <literal>cellspacing</literal> attribute in the
+      output HTML table.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml cellspacing="<replaceable>number</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>cellspacing="<replaceable>number</replaceable>"</term>
+        <listitem>
+          <para>Specifies the cellspacing</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>html.cellspacing</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="CellSpacing.html">Cell spacing and cell padding</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+    </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_cellspacing">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'cellspacing'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_class">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Set value of the class attribute for a table row</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml class</tag> PI as a child of a
+      <tag>row</tag> to specify a <literal>class</literal>
+      attribute and value in the HTML output for that row.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml class="<replaceable>name</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>class="<replaceable>name</replaceable>"</term>
+        <listitem>
+          <para>Specifies the class name</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="CSSTableCells.html">Table styles in HTML output</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_class">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'class'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi xmlns="" name="dbhtml_dir">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies a directory name in which to write files</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>When chunking output, use the <tag>dbhtml dir</tag> PI
+      as a child of a chunk source to cause the output of that
+      chunk to be written to the specified directory; also, use it
+      as a child of a <tag>mediaobject</tag> to specify a
+      directory into which any long-description files for that
+      <tag>mediaobject</tag> will be written.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml dir="<replaceable>path</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>dir="<replaceable>path</replaceable>"</term>
+        <listitem>
+          <para>Specifies the pathname for the directory</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>base.dir</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Chunking.html#dbhtmlDirPI">dbhtml dir processing instruction</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_dir">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'dir'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_filename">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies a filename for a chunk</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>When chunking output, use the <tag>dbhtml filename</tag>
+      PI as a child of a chunk source to specify a filename for
+      the output file for that chunk.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml filename="<replaceable>filename</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>filename="<replaceable>path</replaceable>"</term>
+        <listitem>
+          <para>Specifies the filename for the file</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>use.id.as.filename</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Chunking.html#DbhtmlFilenames">dbhtml filenames</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_filename">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'filename'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_funcsynopsis-style">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies presentation style for a funcsynopsis</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml funcsynopsis-style</tag> PI as a child of
+      a <tag>funcprototype</tag> or anywhere within a funcprototype
+      control the presentation style for the <tag>funcsynopsis</tag>
+      in output.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml funcsynopsis-style="kr"|"ansi"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>funcsynopsis-style="kr"</term>
+        <listitem>
+          <para>Displays the <tag>funcprototype</tag> in K&amp;R style</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>funcsynopsis-style="ansi"</term>
+        <listitem>
+          <para>Displays the <tag>funcprototype</tag> in ANSI style</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>funcsynopsis.style</parameter></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_funcsynopsis-style">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'funcsynopsis-style'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_img.src.path">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies a path to the location of an image file</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml img.src.path</tag> PI before or
+      after an image (<tag>graphic</tag>,
+      <tag>inlinegraphic</tag>, <tag>imagedata</tag>, or
+      <tag>videodata</tag> element) as a sibling to the element,
+      to specify a path to the location of the image; in HTML
+      output, the value specified for the
+      <code>img.src.path</code> attribute is prepended to the
+      filename.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml img.src.path="<replaceable>path</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>img.src.path="<replaceable>path</replaceable>"</term>
+        <listitem>
+          <para>Specifies the pathname to prepend to the name of the image file</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>img.src.path</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="GraphicsLocations.html#UsingFileref">Using fileref</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_img.src.path">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'img.src.path'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_label-width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the label width for a qandaset</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml label-width</tag> PI as a child of a
+      <tag>qandaset</tag> to specify the width of labels.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml label-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>label-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the label width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_label-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'label-width'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi xmlns="" name="dbhtml_linenumbering.everyNth">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies interval for lines numbers in verbatims</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml linenumbering.everyNth</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the interval at which lines are numbered.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.everyNth="<replaceable>N</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>linenumbering.everyNth="<replaceable>N</replaceable>"</term>
+        <listitem>
+          <para>Specifies numbering interval; a number is output
+            before every <replaceable>N</replaceable>th line</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>linenumbering.everyNth</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.everyNth">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_linenumbering.separator">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies separator text for line numbers in verbatims</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml linenumbering.separator</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the separator text output between the line numbers and content.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.separator="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>linenumbering.separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>linenumbering.separator</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.separator">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_linenumbering.width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies width for line numbers in verbatims</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml linenumbering.width</tag> PI as a child
+      of a &#8220;verbatim&#8221; element &#8211; <tag>programlisting</tag>,
+      <tag>screen</tag>, <tag>synopsis</tag> &#8212; to specify
+      the width set aside for line numbers.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml linenumbering.width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>linenumbering.width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the width (inluding units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>linenumbering.width</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="AnnotateListing.html#LineNumbering">Line numbering</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_linenumbering.width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_list-presentation">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies presentation style for a variablelist or
+    segmentedlist</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml list-presentation</tag> PI as a child of
+      a <tag>variablelist</tag> or <tag>segmentedlist</tag> to
+      control the presentation style for the list (to cause it, for
+      example, to be displayed as a table).</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml list-presentation="list"|"table"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>list-presentation="list"</term>
+        <listitem>
+          <para>Displays the list as a list</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>list-presentation="table"</term>
+        <listitem>
+          <para>Displays the list as a table</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <itemizedlist>
+      <listitem>
+        <para><parameter>variablelist.as.table</parameter></para>
+      </listitem>
+      <listitem>
+        <para><parameter>segmentedlist.as.table</parameter></para>
+      </listitem>
+    </itemizedlist>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_list-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'list-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_list-width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the width of a variablelist or simplelist</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml list-width</tag> PI as a child of a
+      <tag>variablelist</tag> or a <tag>simplelist</tag> presented
+      as a table, to specify the output width.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml list-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>list-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the output width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_list-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'list-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_row-height">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the height for a table row</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml row-height</tag> PI as a child of a
+      <tag>row</tag> to specify the height of the row.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml row-height="<replaceable>height</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>row-height="<replaceable>height</replaceable>"</term>
+        <listitem>
+          <para>Specifies the label height (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="RowHeight.html">Row height</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_row-height">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'row-height'"/>
+  </xsl:call-template>
+</xsl:template> 
+
+<doc:pi xmlns="" name="dbhtml_start">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">(obsolete) Sets the starting number on an ordered list</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para><emphasis>This PI is obsolete</emphasis>. The intent of
+      this PI was to provide a means for setting a specific starting
+      number for an ordered list. Instead of this PI, set a value
+      for the <literal>override</literal> attribute on the first
+      <tag>listitem</tag> in the list; that will have the same
+      effect as what this PI was intended for.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml start="<replaceable>character</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>start="<replaceable>character</replaceable>"</term>
+        <listitem>
+          <para>Specifies the character to use as the starting
+            number; use 0-9, a-z, A-Z, or lowercase or uppercase
+            Roman numerals</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Orderedlists.html#ListStartNum">List starting number</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_start">
+  <xsl:param name="node" select="."/>
   <xsl:call-template name="pi-attribute">
-    <xsl:with-param name="pis" select="$pis"/>
-    <xsl:with-param name="attribute" select="$attribute"/>
-  </xsl:call-template>
-</xsl:template>
-
-<xsl:template name="dbhtml-filename">
-  <xsl:param name="pis" select="./processing-instruction('dbhtml')"/>
-  <xsl:call-template name="dbhtml-attribute">
-    <xsl:with-param name="pis" select="$pis"/>
-    <xsl:with-param name="attribute">filename</xsl:with-param>
-  </xsl:call-template>
-</xsl:template>
-
-<!--
-<xsl:template name="dbhtml-dir">
-  <xsl:param name="pis" select="./processing-instruction('dbhtml')"/>
-  <xsl:call-template name="dbhtml-attribute">
-    <xsl:with-param name="pis" select="$pis"/>
-    <xsl:with-param name="attribute">dir</xsl:with-param>
-  </xsl:call-template>
-</xsl:template>
--->
-
-<xsl:template name="dbhtml-dir">
-  <xsl:param name="context" select="."/>
-
-  <!-- directories are now inherited from previous levels -->
-
-  <xsl:variable name="ppath">
-    <xsl:if test="$context/parent::*">
-      <xsl:call-template name="dbhtml-dir">
-        <xsl:with-param name="context" select="$context/parent::*"/>
-      </xsl:call-template>
-    </xsl:if>
-  </xsl:variable>
-
-  <xsl:variable name="path">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="$context/processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute">dir</xsl:with-param>
-    </xsl:call-template>
-  </xsl:variable>
-
-  <xsl:choose>
-    <xsl:when test="$path = ''">
-      <xsl:if test="$ppath != ''">
-        <xsl:value-of select="$ppath"/>
-      </xsl:if>
-    </xsl:when>
-    <xsl:otherwise>
-      <xsl:if test="$ppath != ''">
-        <xsl:value-of select="$ppath"/>
-        <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'">
-          <xsl:text>/</xsl:text>
-        </xsl:if>
-      </xsl:if>
-      <xsl:value-of select="$path"/>
-      <xsl:text>/</xsl:text>
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-<!-- ==================================================================== -->
-
-<xsl:template name="process.cmdsynopsis.list">
-  <xsl:param name="cmdsynopses"/><!-- empty node list by default -->
-  <xsl:param name="count" select="1"/>
-
-  <xsl:choose>
-    <xsl:when test="$count&gt;count($cmdsynopses)"/>
-    <xsl:otherwise>
-      <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/>
-
-       <dt>
-       <a>
-         <xsl:attribute name="href">
-           <xsl:call-template name="object.id">
-             <xsl:with-param name="object" select="$cmdsyn"/>
-           </xsl:call-template>
-         </xsl:attribute>
-
-         <xsl:choose>
-           <xsl:when test="$cmdsyn/@xreflabel">
-             <xsl:call-template name="xref.xreflabel">
-               <xsl:with-param name="target" select="$cmdsyn"/>
-             </xsl:call-template>
-           </xsl:when>
-           <xsl:otherwise>
-             <xsl:apply-templates select="$cmdsyn" mode="xref-to">
-               <xsl:with-param name="target" select="$cmdsyn"/>
-             </xsl:apply-templates>
-           </xsl:otherwise>
-         </xsl:choose>
-       </a>
-       </dt>
-
-        <xsl:call-template name="process.cmdsynopsis.list">
-          <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
-          <xsl:with-param name="count" select="$count+1"/>
-        </xsl:call-template>
-      </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template match="processing-instruction('dbcmdlist')">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'start'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_table-summary">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies summary for table, variablelist, segmentedlist, or qandaset output</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml table-summary</tag> PI as a child of
+      a <tag>table</tag>, <tag>variablelist</tag>,
+      <tag>segmentedlist</tag>, or <tag>qandaset</tag> to specify
+      the text for the HTML <literal>summary</literal> attribute
+      in the output HTML table.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml table-summary="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>table-summary="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the summary text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link>,
+      <link role="tcg" xlink:href="TableSummary.html">Table summary text</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_table-summary">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'table-summary'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_table-width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the width for a table</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml table-width</tag> PI as a child of a
+      <tag>table</tag> to specify the width of the table in
+      output.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml table-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>table-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the table width (including units or as a percentage)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>default.table.width</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Tables.html#TableWidth">Table width</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_table-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'table-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_term-presentation">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Sets character formatting for terms in a variablelist</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml term-presentation</tag> PI as a child
+      of a <tag>variablelist</tag> to set character formatting for
+      the <tag>term</tag> output of the list.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml term-presentation="bold"|"italic"|"bold-italic"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>term-presentation="<replaceable>bold</replaceable>"</term>
+        <listitem>
+          <para>Specifies that terms are displayed in bold</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>term-presentation="<replaceable>italic</replaceable>"</term>
+        <listitem>
+          <para>Specifies that terms are displayed in italic</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>term-presentation="<replaceable>bold-italic</replaceable>"</term>
+        <listitem>
+          <para>Specifies that terms are displayed in bold-italic</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-presentation">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'term-presentation'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_term-separator">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies separator text among terms in a varlistentry</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml term-separator</tag> PI as a child
+      of a <tag>variablelist</tag> to specify the separator text
+      among <tag>term</tag> instances.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml term-separator="<replaceable>text</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>term-separator="<replaceable>text</replaceable>"</term>
+        <listitem>
+          <para>Specifies the text (zero or more characters)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>variablelist.term.separator</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-separator">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'term-separator'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_term-width">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Specifies the term width for a variablelist</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml term-width</tag> PI as a child of a
+      <tag>variablelist</tag> to specify the width for
+      <tag>term</tag> output.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml term-width="<replaceable>width</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>term-width="<replaceable>width</replaceable>"</term>
+        <listitem>
+          <para>Specifies the term width (including units)</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="Variablelists.html#VarListFormatting">Variable list formatting in HTML</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_term-width">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'term-width'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbhtml_toc">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Species whether a TOC should be generated for a qandaset</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml toc</tag> PI as a child of a
+      <tag>qandaset</tag> to specify whether a table of contents
+      (TOC) is generated for the <tag>qandaset</tag>.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml toc="0"|"1"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>toc="0"</term>
+        <listitem>
+          <para>If zero, no TOC is generated</para>
+        </listitem>
+      </varlistentry>
+      <varlistentry><term>toc="1"</term>
+        <listitem>
+          <para>If <code>1</code> (or any non-zero value),
+            a TOC is generated</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="QandAtoc.html">Q and A list of questions</link>,
+      <link role="tcg" xlink:href="QandAformat.html">Q and A formatting</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml_toc">
+  <xsl:param name="node" select="."/>
+  <xsl:call-template name="dbhtml-attribute">
+    <xsl:with-param name="pis" select="$node/processing-instruction('dbhtml')"/>
+    <xsl:with-param name="attribute" select="'toc'"/>
+  </xsl:call-template>
+</xsl:template>
+
+<doc:pi xmlns="" name="dbcmdlist">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Generates a hyperlinked list of commands</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbcmdlist</tag> PI as the child of a
+      <tag>refsynopsisdiv</tag> containing multiple
+      <tag>cmdsynopsis</tag> instances; a hyperlinked navigational
+      &#8220;command list&#8221; will be generated at the top of the
+      <tag>refsynopsisdiv</tag>, enabling users to quickly jump
+      to to each command synopsis.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbcmdlist</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <para>[No parameters]</para>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbcmdlist">
   <xsl:variable name="cmdsynopses" select="..//cmdsynopsis"/>
-
   <xsl:if test="count($cmdsynopses)&lt;1">
     <xsl:message><xsl:text>No cmdsynopsis elements matched dbcmdlist PI, perhaps it's nested too deep?</xsl:text>
     </xsl:message>
   </xsl:if>
-
   <dl>
     <xsl:call-template name="process.cmdsynopsis.list">
@@ -147,54 +873,27 @@
 </xsl:template>
 
-<!-- ==================================================================== -->
-
-<xsl:template name="process.funcsynopsis.list">
-  <xsl:param name="funcsynopses"/><!-- empty node list by default -->
-  <xsl:param name="count" select="1"/>
-
-  <xsl:choose>
-    <xsl:when test="$count&gt;count($funcsynopses)"/>
-    <xsl:otherwise>
-      <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/>
-
-       <dt>
-       <a>
-         <xsl:attribute name="href">
-           <xsl:call-template name="object.id">
-             <xsl:with-param name="object" select="$cmdsyn"/>
-           </xsl:call-template>
-         </xsl:attribute>
-
-         <xsl:choose>
-           <xsl:when test="$cmdsyn/@xreflabel">
-             <xsl:call-template name="xref.xreflabel">
-               <xsl:with-param name="target" select="$cmdsyn"/>
-             </xsl:call-template>
-           </xsl:when>
-           <xsl:otherwise>
-              <xsl:apply-templates select="$cmdsyn" mode="xref-to">
-                <xsl:with-param name="target" select="$cmdsyn"/>
-              </xsl:apply-templates>
-           </xsl:otherwise>
-         </xsl:choose>
-       </a>
-       </dt>
-
-        <xsl:call-template name="process.funcsynopsis.list">
-          <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
-          <xsl:with-param name="count" select="$count+1"/>
-        </xsl:call-template>
-      </xsl:otherwise>
-    </xsl:choose>
-</xsl:template>
-
-<xsl:template match="processing-instruction('dbfunclist')">
+<doc:pi xmlns="" name="dbfunclist">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Generates a hyperlinked list of functions</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbfunclist</tag> PI as the child of a
+      <tag>refsynopsisdiv</tag> containing multiple
+      <tag>funcsynopsis</tag> instances; a hyperlinked
+      navigational &#8220;function list&#8221; will be generated at the top of
+      the <tag>refsynopsisdiv</tag>, enabling users to quickly
+      jump to to each function synopsis.</para>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbfunclist</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <para>[No parameters]</para>
+  </refparameter>
+</doc:pi>
+<xsl:template name="pi.dbfunclist">
   <xsl:variable name="funcsynopses" select="..//funcsynopsis"/>
-
   <xsl:if test="count($funcsynopses)&lt;1">
     <xsl:message><xsl:text>No funcsynopsis elements matched dbfunclist PI, perhaps it's nested too deep?</xsl:text>
     </xsl:message>
   </xsl:if>
-
   <dl>
     <xsl:call-template name="process.funcsynopsis.list">
@@ -204,11 +903,57 @@
 </xsl:template>
 
-<!-- ==================================================================== -->
-
-<!-- Copy well-formed external HTML content to the output. -->
-<!-- An optional <html> wrapper will be removed before content is copied 
-     to support multiple elements in output without a wrapper.
-     No other processing is done to the content. -->
-<xsl:template match="processing-instruction('dbhtml-include')">
+<doc:pi xmlns="" name="dbhtml-include_href">
+  <refpurpose xmlns="http://www.w3.org/1999/xhtml">Copies an external well-formed HTML/XML file into current doc</refpurpose>
+  <refdescription xmlns="http://www.w3.org/1999/xhtml">
+    <para>Use the <tag>dbhtml-include href</tag> PI anywhere in a
+      document to cause the contents of the file referenced by the
+      <code>href</code> pseudo-attribute to be copied/inserted &#8220;as
+      is&#8221; into your HTML output at the point in document order
+      where the PI occurs in the source.</para>
+    <note>
+      <para>The referenced file may contain plain text (as long as
+        it is &#8220;wrapped&#8221; in an <tag>html</tag> element &#8212; see the
+        note below) or markup in any arbitrary vocabulary,
+        including HTML &#8212; but it must conform to XML
+        well-formedness constraints (because the feature in XSLT
+        1.0 for opening external files, the
+        <function>document()</function> function, can only handle
+        files that meet XML well-formedness constraints).</para>
+      <para>Among other things, XML well-formedness constraints
+        require a document to have <emphasis>a single root
+          element</emphasis>. So if the content you want to
+        include is plain text or is markup that does
+        <emphasis>not</emphasis> have a single root element,
+        <emphasis role="strong">wrap the content in an
+          <tag>html</tag> element</emphasis>. The stylesheets will
+        strip out that surrounding <tag>html</tag> &#8220;wrapper&#8221; when
+        they find it, leaving just the content you want to
+        insert.</para>
+    </note>
+  </refdescription>
+  <refsynopsisdiv xmlns="http://www.w3.org/1999/xhtml">
+    <synopsis><tag class="xmlpi">dbhtml href="<replaceable>URI</replaceable>"</tag></synopsis>
+  </refsynopsisdiv>
+  <refparameter xmlns="http://www.w3.org/1999/xhtml">
+    <variablelist>
+      <varlistentry><term>href="<replaceable>URI</replaceable>"</term>
+        <listitem>
+          <para>Specifies the URI for the file to include; the URI
+            can be, for example, a remote <literal>http:</literal>
+            URI, or a local filesystem <literal>file:</literal>
+            URI</para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+  </refparameter>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="params">
+    <para><parameter>textinsert.extension</parameter></para>
+  </refsee>
+  <refsee xmlns="http://www.w3.org/1999/xhtml" role="tcg">
+    <para><link role="tcg" xlink:href="InsertExtHtml.html">Inserting external HTML code</link>,
+      <link xlink:href="ExternalCode.html">External code files</link></para>
+  </refsee>
+</doc:pi>
+<xsl:template name="pi.dbhtml-include">
   <xsl:param name="href">
     <xsl:call-template name="dbhtml-attribute">
@@ -217,5 +962,4 @@
     </xsl:call-template>
   </xsl:param>
-
   <xsl:choose>
     <xsl:when test="$href != ''">
@@ -250,3 +994,159 @@
 </xsl:template>
 
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-attribute">
+  <!-- * dbhtml-attribute is an interal utility template for retrieving -->
+  <!-- * pseudo-attributes/parameters from PIs -->
+  <xsl:param name="pis" select="processing-instruction('dbhtml')"/>
+  <xsl:param name="attribute">filename</xsl:param>
+  <xsl:call-template name="pi-attribute">
+    <xsl:with-param name="pis" select="$pis"/>
+    <xsl:with-param name="attribute" select="$attribute"/>
+  </xsl:call-template>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction()">
+</xsl:template>
+
+<xsl:template match="processing-instruction('dbhtml')">
+  <!-- nop -->
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbcmdlist')">
+  <xsl:call-template name="pi.dbcmdlist"/>
+</xsl:template>
+<xsl:template name="process.cmdsynopsis.list">
+  <xsl:param name="cmdsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($cmdsynopses)"/>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$cmdsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:text>#</xsl:text>
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+             <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.cmdsynopsis.list">
+          <xsl:with-param name="cmdsynopses" select="$cmdsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbfunclist')">
+  <xsl:call-template name="pi.dbfunclist"/>
+</xsl:template>
+<xsl:template name="process.funcsynopsis.list">
+  <xsl:param name="funcsynopses"/><!-- empty node list by default -->
+  <xsl:param name="count" select="1"/>
+
+  <xsl:choose>
+    <xsl:when test="$count&gt;count($funcsynopses)"/>
+    <xsl:otherwise>
+      <xsl:variable name="cmdsyn" select="$funcsynopses[$count]"/>
+
+       <dt>
+       <a>
+         <xsl:attribute name="href">
+           <xsl:text>#</xsl:text>
+           <xsl:call-template name="object.id">
+             <xsl:with-param name="object" select="$cmdsyn"/>
+           </xsl:call-template>
+         </xsl:attribute>
+
+         <xsl:choose>
+           <xsl:when test="$cmdsyn/@xreflabel">
+             <xsl:call-template name="xref.xreflabel">
+               <xsl:with-param name="target" select="$cmdsyn"/>
+             </xsl:call-template>
+           </xsl:when>
+           <xsl:otherwise>
+              <xsl:apply-templates select="$cmdsyn" mode="xref-to">
+                <xsl:with-param name="target" select="$cmdsyn"/>
+              </xsl:apply-templates>
+           </xsl:otherwise>
+         </xsl:choose>
+       </a>
+       </dt>
+
+        <xsl:call-template name="process.funcsynopsis.list">
+          <xsl:with-param name="funcsynopses" select="$funcsynopses"/>
+          <xsl:with-param name="count" select="$count+1"/>
+        </xsl:call-template>
+      </xsl:otherwise>
+    </xsl:choose>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template match="processing-instruction('dbhtml-include')">
+  <xsl:call-template name="pi.dbhtml-include"/>
+</xsl:template>
+
+<!-- ==================================================================== -->
+
+<xsl:template name="dbhtml-dir">
+  <xsl:param name="context" select="."/>
+  <!-- directories are now inherited from previous levels -->
+  <xsl:variable name="ppath">
+    <xsl:if test="$context/parent::*">
+      <xsl:call-template name="dbhtml-dir">
+        <xsl:with-param name="context" select="$context/parent::*"/>
+      </xsl:call-template>
+    </xsl:if>
+  </xsl:variable>
+  <xsl:variable name="path">
+    <xsl:call-template name="pi.dbhtml_dir">
+      <xsl:with-param name="node" select="$context"/>
+    </xsl:call-template>
+  </xsl:variable>
+  <xsl:choose>
+    <xsl:when test="$path = ''">
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+      </xsl:if>
+    </xsl:when>
+    <xsl:otherwise>
+      <xsl:if test="$ppath != ''">
+        <xsl:value-of select="$ppath"/>
+        <xsl:if test="substring($ppath, string-length($ppath), 1) != '/'">
+          <xsl:text>/</xsl:text>
+        </xsl:if>
+      </xsl:if>
+      <xsl:value-of select="$path"/>
+      <xsl:text>/</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
 </xsl:stylesheet>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/profile-chunk-code.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/profile-chunk-code.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/profile-chunk-code.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -67,5 +67,5 @@
 
   <xsl:variable name="dbhtml-filename">
-    <xsl:call-template name="dbhtml-filename"/>
+    <xsl:call-template name="pi.dbhtml_filename"/>
   </xsl:variable>
 
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/qandaset.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/qandaset.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/qandaset.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -20,8 +20,5 @@
   <xsl:variable name="preamble" select="*[local-name(.) != 'title'                                           and local-name(.) != 'titleabbrev'                                           and local-name(.) != 'qandadiv'                                           and local-name(.) != 'qandaentry']"/>
   <xsl:variable name="toc">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'toc'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_toc"/>
   </xsl:variable>
 
@@ -76,8 +73,5 @@
 
   <xsl:variable name="toc">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'toc'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_toc"/>
   </xsl:variable>
 
@@ -317,29 +311,17 @@
 
   <xsl:variable name="label-width">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'label-width'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_label-width"/>
   </xsl:variable>
 
   <xsl:variable name="table-summary">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'table-summary'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
   </xsl:variable>
 
   <xsl:variable name="cellpadding">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'cellpadding'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_cellpadding"/>
   </xsl:variable>
 
   <xsl:variable name="cellspacing">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'cellspacing'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_cellspacing"/>
   </xsl:variable>
 
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/sections.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/sections.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/sections.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -436,9 +436,12 @@
       </xsl:if>
     </xsl:if>
-    <xsl:if test="$allow-anchors != 0">
+    <xsl:if test="$allow-anchors != 0 and $generate.id.attributes = 0">
       <xsl:call-template name="anchor">
         <xsl:with-param name="node" select="$section"/>
         <xsl:with-param name="conditional" select="0"/>
       </xsl:call-template>
+    </xsl:if>
+    <xsl:if test="$generate.id.attributes != 0 and not(local-name(.) = 'appendix')">
+      <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
     </xsl:if>
     <xsl:copy-of select="$title"/>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/synop.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/synop.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/synop.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -24,5 +24,7 @@
     <xsl:apply-templates select="." mode="class.attribute"/>
     <p>
-      <xsl:call-template name="anchor"/>
+      <xsl:call-template name="anchor">
+        <xsl:with-param name="conditional" select="0"/>
+      </xsl:call-template>
       <xsl:apply-templates/>
     </p>
@@ -178,7 +180,6 @@
 <xsl:template match="funcprototype">
   <xsl:variable name="html-style">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="ancestor::funcsynopsis//processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'funcsynopsis-style'"/>
+    <xsl:call-template name="pi.dbhtml_funcsynopsis-style">
+      <xsl:with-param name="node" select="ancestor::funcsynopsis/descendant-or-self::*"/>
     </xsl:call-template>
   </xsl:variable>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/table.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/table.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/table.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -136,22 +136,13 @@
 
   <xsl:variable name="summary">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'table-summary'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
   </xsl:variable>
 
   <xsl:variable name="cellspacing">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'cellspacing'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_cellspacing"/>
   </xsl:variable>
 
   <xsl:variable name="cellpadding">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="processing-instruction('dbhtml')[1]"/>
-      <xsl:with-param name="attribute" select="'cellpadding'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_cellpadding"/>
   </xsl:variable>
 
@@ -216,5 +207,4 @@
     <xsl:choose>
       <xsl:when test="$table.borders.with.css != 0">
-        <xsl:attribute name="border">0</xsl:attribute>
         <xsl:choose>
           <xsl:when test="../@frame='all' or (not(../@frame) and $default.table.frame='all')">
@@ -303,4 +293,9 @@
             </xsl:attribute>
           </xsl:when>
+	  <xsl:when test="../@frame='none'">
+	    <xsl:attribute name="style">
+	      <xsl:text>border: none;</xsl:text>
+	    </xsl:attribute>
+	  </xsl:when>
           <xsl:otherwise>
             <xsl:attribute name="style">
@@ -309,4 +304,5 @@
           </xsl:otherwise>
         </xsl:choose>
+
       </xsl:when>
       <xsl:when test="../@frame='none' or (not(../@frame) and $default.table.frame='none') or local-name(.) = 'entrytbl'">
@@ -327,7 +323,6 @@
 
     <xsl:variable name="explicit.table.width">
-      <xsl:call-template name="dbhtml-attribute">
-        <xsl:with-param name="pis" select="../processing-instruction('dbhtml')[1]"/>
-        <xsl:with-param name="attribute" select="'table-width'"/>
+      <xsl:call-template name="pi.dbhtml_table-width">
+        <xsl:with-param name="node" select=".."/>
       </xsl:call-template>
     </xsl:variable>
@@ -417,8 +412,5 @@
 <xsl:template match="tgroup/processing-instruction('dbhtml')">
   <xsl:variable name="summary">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="."/>
-      <xsl:with-param name="attribute" select="'table-summary'"/>
-    </xsl:call-template>
+    <xsl:call-template name="pi.dbhtml_table-summary"/>
   </xsl:variable>
 
@@ -546,8 +538,5 @@
   <xsl:variable name="row-height">
     <xsl:if test="processing-instruction('dbhtml')">
-      <xsl:call-template name="dbhtml-attribute">
-        <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-        <xsl:with-param name="attribute" select="'row-height'"/>
-      </xsl:call-template>
+      <xsl:call-template name="pi.dbhtml_row-height"/>
     </xsl:if>
   </xsl:variable>
@@ -555,8 +544,5 @@
   <xsl:variable name="bgcolor">
     <xsl:if test="processing-instruction('dbhtml')">
-      <xsl:call-template name="dbhtml-attribute">
-	<xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-	<xsl:with-param name="attribute" select="'bgcolor'"/>
-      </xsl:call-template>
+      <xsl:call-template name="pi.dbhtml_bgcolor"/>
     </xsl:if>
   </xsl:variable>
@@ -564,8 +550,5 @@
   <xsl:variable name="class">
     <xsl:if test="processing-instruction('dbhtml')">
-      <xsl:call-template name="dbhtml-attribute">
-	<xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-	<xsl:with-param name="attribute" select="'class'"/>
-      </xsl:call-template>
+      <xsl:call-template name="pi.dbhtml_class"/>
     </xsl:if>
   </xsl:variable>
@@ -777,8 +760,5 @@
       <xsl:variable name="bgcolor">
         <xsl:if test="processing-instruction('dbhtml')">
-          <xsl:call-template name="dbhtml-attribute">
-            <xsl:with-param name="pis" select="processing-instruction('dbhtml')"/>
-            <xsl:with-param name="attribute" select="'bgcolor'"/>
-          </xsl:call-template>
+          <xsl:call-template name="pi.dbhtml_bgcolor"/>
         </xsl:if>
       </xsl:variable>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/titlepage.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/titlepage.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/titlepage.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -929,5 +929,7 @@
   <h1>
     <xsl:apply-templates select="." mode="class.attribute"/>
-    <a id="{$id}"/>
+    <xsl:if test="$generate.id.attributes = 0">
+      <a id="{$id}"/>
+    </xsl:if>
     <xsl:choose>
       <xsl:when test="$show.revisionflag != 0 and @revisionflag">
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/verbatim.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/verbatim.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/verbatim.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -170,21 +170,18 @@
   <!-- Extract the <?dbhtml linenumbering.*?> PI values -->
   <xsl:variable name="pi.linenumbering.everyNth">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="$pi.context/processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'linenumbering.everyNth'"/>
+    <xsl:call-template name="pi.dbhtml_linenumbering.everyNth">
+      <xsl:with-param name="node" select="$pi.context"/>
     </xsl:call-template>
   </xsl:variable>
 
   <xsl:variable name="pi.linenumbering.separator">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="$pi.context/processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'linenumbering.separator'"/>
+    <xsl:call-template name="pi.dbhtml_linenumbering.separator">
+      <xsl:with-param name="node" select="$pi.context"/>
     </xsl:call-template>
   </xsl:variable>
 
   <xsl:variable name="pi.linenumbering.width">
-    <xsl:call-template name="dbhtml-attribute">
-      <xsl:with-param name="pis" select="$pi.context/processing-instruction('dbhtml')"/>
-      <xsl:with-param name="attribute" select="'linenumbering.width'"/>
+    <xsl:call-template name="pi.dbhtml_linenumbering.width">
+      <xsl:with-param name="node" select="$pi.context"/>
     </xsl:call-template>
   </xsl:variable>
Index: stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/xref.xsl
===================================================================
--- stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/xref.xsl	(revision f5da8e92f71e3009c439a98e4b1ef7004f867bb4)
+++ stylesheets/lfs-xsl/docbook-xsl-snapshot/xhtml/xref.xsl	(revision bbe9b3dad184299d621150c9e55f26864b814857)
@@ -727,5 +727,4 @@
 </xsl:template>
 
-<!-- This is currently not working, because there is no corresponding ID generated by Java extensions for processing callouts
 <xsl:template match="area|areaset" mode="xref-to">
   <xsl:param name="referrer"/>
@@ -738,5 +737,4 @@
   </xsl:call-template>
 </xsl:template>
--->
 
 <xsl:template match="book" mode="xref-to">
