Index: prologue/audience.xml
===================================================================
--- prologue/audience.xml	(revision 962a927c9e497c6b95bf57700978087a6aefe5a5)
+++ prologue/audience.xml	(revision dc931cb251714f9f8f8f3c699dd72e80708bc0f3)
@@ -6,5 +6,5 @@
 ]>
 
-<sect1 id="pre-audience" label="ii">
+<sect1 id="pre-audience">
   <?dbhtml filename="audience.html"?>
 
Index: prologue/errata.xml
===================================================================
--- prologue/errata.xml	(revision 962a927c9e497c6b95bf57700978087a6aefe5a5)
+++ prologue/errata.xml	(revision dc931cb251714f9f8f8f3c699dd72e80708bc0f3)
@@ -6,5 +6,5 @@
 ]>
 
-<sect1 id="pre-errata" label="vii">
+<sect1 id="pre-errata">
   <?dbhtml filename="errata.html"?>
 
Index: prologue/foreword.xml
===================================================================
--- prologue/foreword.xml	(revision 962a927c9e497c6b95bf57700978087a6aefe5a5)
+++ prologue/foreword.xml	(revision dc931cb251714f9f8f8f3c699dd72e80708bc0f3)
@@ -6,5 +6,5 @@
 ]>
 
-<sect1 id="pre-foreword" label="i">
+<sect1 id="pre-foreword">
   <?dbhtml filename="foreword.html"?>
 
Index: prologue/hostreqs.xml
===================================================================
--- prologue/hostreqs.xml	(revision 962a927c9e497c6b95bf57700978087a6aefe5a5)
+++ prologue/hostreqs.xml	(revision dc931cb251714f9f8f8f3c699dd72e80708bc0f3)
@@ -6,5 +6,5 @@
 ]>
 
-<sect1 id="pre-hostreqs" label="iv">
+<sect1 id="pre-hostreqs">
   <?dbhtml filename="hostreqs.html"?>
 
Index: prologue/organization.xml
===================================================================
--- prologue/organization.xml	(revision 962a927c9e497c6b95bf57700978087a6aefe5a5)
+++ prologue/organization.xml	(revision dc931cb251714f9f8f8f3c699dd72e80708bc0f3)
@@ -6,5 +6,5 @@
 ]>
 
-<sect1 id="pre-organization" label="vi">
+<sect1 id="pre-organization">
   <?dbhtml filename="organization.html"?>
 
Index: prologue/prerequisites.xml
===================================================================
--- prologue/prerequisites.xml	(revision 962a927c9e497c6b95bf57700978087a6aefe5a5)
+++ prologue/prerequisites.xml	(revision dc931cb251714f9f8f8f3c699dd72e80708bc0f3)
@@ -6,5 +6,5 @@
 ]>
 
-<sect1 id="pre-prerequisites" label="iii">
+<sect1 id="pre-prerequisites">
   <?dbhtml filename="prerequisites.html"?>
 
Index: prologue/typography.xml
===================================================================
--- prologue/typography.xml	(revision 962a927c9e497c6b95bf57700978087a6aefe5a5)
+++ prologue/typography.xml	(revision dc931cb251714f9f8f8f3c699dd72e80708bc0f3)
@@ -6,5 +6,5 @@
 ]>
 
-<sect1 id="pre-typography" label="v">
+<sect1 id="pre-typography">
   <?dbhtml filename="typography.html"?>
 
Index: stylesheets/xhtml/lfs-sections.xsl
===================================================================
--- stylesheets/xhtml/lfs-sections.xsl	(revision 962a927c9e497c6b95bf57700978087a6aefe5a5)
+++ stylesheets/xhtml/lfs-sections.xsl	(revision dc931cb251714f9f8f8f3c699dd72e80708bc0f3)
@@ -49,10 +49,48 @@
     </div>
   </xsl:template>
-    
+
     <!-- Sections numbering -->
   <xsl:param name="section.autolabel" select="1"/>
   <xsl:param name="section.label.includes.component.label" select="1"/>
 
-    <!-- Skip numeraration for sections with empty title -->
+    <!-- Use lowercase roman numbers for sect1 in preface -->
+  <xsl:template match="sect1" mode="label.markup">
+    <!-- if the parent is a component, maybe label that too -->
+    <xsl:variable name="parent.is.component">
+      <xsl:call-template name="is.component">
+        <xsl:with-param name="node" select=".."/>
+      </xsl:call-template>
+    </xsl:variable>
+    <xsl:variable name="component.label">
+      <xsl:if test="$section.label.includes.component.label != 0
+                    and $parent.is.component != 0">
+        <xsl:variable name="parent.label">
+          <xsl:apply-templates select=".." mode="label.markup"/>
+        </xsl:variable>
+        <xsl:if test="$parent.label != ''">
+          <xsl:apply-templates select=".." mode="label.markup"/>
+          <xsl:apply-templates select=".." mode="intralabel.punctuation"/>
+        </xsl:if>
+      </xsl:if>
+    </xsl:variable>
+    <xsl:choose>
+      <xsl:when test="@label">
+        <xsl:value-of select="@label"/>
+      </xsl:when>
+      <xsl:when test="$section.autolabel != 0">
+        <xsl:copy-of select="$component.label"/>
+        <xsl:choose>
+          <xsl:when test="ancestor::preface">
+            <xsl:number format="i" count="sect1"/>
+          </xsl:when>
+          <xsl:otherwise>
+            <xsl:number format="1" count="sect1"/>
+          </xsl:otherwise>
+        </xsl:choose>
+      </xsl:when>
+    </xsl:choose>
+  </xsl:template>
+
+    <!-- Skip numeration for sect2 with empty title -->
   <xsl:template match="sect2|sect3|sect4|sect5" mode="label.markup">
     <xsl:if test="string-length(title) > 0">
