diff --git a/src/main/java/info/textgrid/services/aggregator/REST.java b/src/main/java/info/textgrid/services/aggregator/REST.java
index fa504a17d56b3f504a35eb933c1416e9855c2f88..1c63f26d5c95eadb2d99c178f70034ab2c781494 100644
--- a/src/main/java/info/textgrid/services/aggregator/REST.java
+++ b/src/main/java/info/textgrid/services/aggregator/REST.java
@@ -130,6 +130,7 @@ public Response getHTML(
 			@Description("The requested content type. E.g., text/html or text/xml") @QueryParam("mediatype") final String mediaType,
 			@Description("An XML ID. If given, only this element will be transformed.") @QueryParam("id") final String id,
 			@Description("If true, a full webpage that looks similar to textgridrep.de's browse view will be returned") @QueryParam("simulate") @DefaultValue("false") final boolean simulate,
+			@Description("If given, generate a table of contents instead of a full HTML document") @QueryParam("toc") final String toc,
 			@Context final Request request) throws ObjectNotFoundFault,
 			MetadataParseFault, IoFault, AuthFault,
 			ProtocolNotImplementedFault, WebApplicationException, IOException,
@@ -140,6 +141,7 @@ public Response getHTML(
 				embedded, css, sid, mediaType, id, request);
 		writer.simulate(simulate);
 		writer.linkUrlPattern(linkURLPattern);
+		writer.toc(toc);
 		return writer.createResponse().build();
 	}
 
diff --git a/src/main/java/info/textgrid/services/aggregator/html/HTMLWriter.java b/src/main/java/info/textgrid/services/aggregator/html/HTMLWriter.java
index 1dcded91dc27c64b254cefa5693e9c94f57c6944..72bab69dbf344edfcbd5bf8610e773eb8937f9e7 100644
--- a/src/main/java/info/textgrid/services/aggregator/html/HTMLWriter.java
+++ b/src/main/java/info/textgrid/services/aggregator/html/HTMLWriter.java
@@ -99,6 +99,7 @@ public class HTMLWriter extends CorpusBasedExporter implements StreamingOutput {
 	private final StylesheetManager stylesheetManager;
 	private Optional<String> id = Optional.absent();
 	private Optional<String> linkUrlPattern = Optional.absent();
+	private Optional<String> toc = Optional.absent();
 	private static final Logger logger = Logger.getLogger(HTMLWriter.class.getCanonicalName());
 
 
@@ -240,6 +241,9 @@ public XsltTransformer getTransformer() throws SaxonApiException, IOException {
 
 		if (id.isPresent())
 			transformer.setParameter(new QName("ID"), new XdmAtomicValue(id.get()));
+		
+		if (toc.isPresent())
+			transformer.setParameter(new QName("onlyTOC"), new XdmAtomicValue(toc.get()));
 
 		transformer.setSource(source);
 
@@ -312,4 +316,9 @@ public ResponseBuilder createResponse() throws ObjectNotFoundFault, MetadataPars
 		}
 		return super.createResponse();
 	}
+
+	public HTMLWriter toc(final String toc) {
+		this.toc = Optional.fromNullable(toc);
+		return this;
+	}
 }
\ No newline at end of file
diff --git a/src/main/webapp/stylesheets/tohtml.xsl b/src/main/webapp/stylesheets/tohtml.xsl
index 28b70ad1b92e3ccebe091299da18dd7ddaa77cb2..751c85fafdedd37c30b92c78109ddccbd22c82a0 100644
--- a/src/main/webapp/stylesheets/tohtml.xsl
+++ b/src/main/webapp/stylesheets/tohtml.xsl
@@ -63,6 +63,7 @@
     <xsl:param name="autoHead">false</xsl:param>
     <xsl:param name="showTitleAuthor">false</xsl:param>
     <xsl:param name="cssFile"/>
+    <xsl:param name="onlyTOC"/>
 
     <xsl:output method="xhtml"/>
         
@@ -78,7 +79,57 @@
     <xsl:template name="stdheader">
         <xsl:param name="title">(no title)</xsl:param>
     </xsl:template>
-                
+        
+    <xsl:template match="/">
+            <xsl:choose>
+                    <xsl:when test="$onlyTOC">
+                            <xsl:message>Tunelling ...</xsl:message>
+                            <ul class="toc">
+                                    <xsl:apply-templates mode="toc">
+                                            <xsl:with-param name="currentDepth" tunnel="yes" select="0"/>
+                                    </xsl:apply-templates>
+                            </ul>
+                    </xsl:when>
+                    <xsl:otherwise>
+                            <xsl:next-match/>
+                    </xsl:otherwise>
+            </xsl:choose>            
+    </xsl:template>
+        
+    <xsl:template mode="toc" match="node()">
+            <xsl:apply-templates mode="#current"/>
+    </xsl:template>
+    <xsl:template mode="toc" match="div[head][@xml:id]">
+            <xsl:param name="currentDepth" tunnel="yes"/>            
+            <li>
+                    <a href="#{@xml:id}">
+                            <xsl:apply-templates select="head[1]/node()"/>
+                    </a>
+                    <xsl:if test="$currentDepth lt $tocDepth and (descendant::div[head] or descendant::TEI)">
+                            <ul>
+                                    <xsl:apply-templates>
+                                            <xsl:with-param name="currentDepth" tunnel="yes" select="$currentDepth + 1"/>
+                                    </xsl:apply-templates>
+                            </ul>
+                    </xsl:if>
+            </li>
+    </xsl:template>
+        
+    <xsl:template mode="toc" match="TEI[parent::teiCorpus][@xml:id]|teiCorpus[parent::teiCorpus][@xml:id]">
+            <xsl:param name="currentDepth" as="xs:integer" tunnel="yes"></xsl:param>
+            <li>
+                    <a href="#{@xml:id}">
+                            <xsl:call-template name="generateTitle"/>
+                    </a>
+                    <xsl:if test="$currentDepth &lt; $tocDepth and (descendant::div[head] or descendant::TEI)">
+                            <ul>
+                                    <xsl:apply-templates mode="#current">
+                                            <xsl:with-param name="currentDepth" tunnel="yes" select="$currentDepth + 1"/>
+                                    </xsl:apply-templates>
+                            </ul>
+                    </xsl:if>
+            </li>
+    </xsl:template>
        
     <xsl:template name="generateTitle">
         <xsl:variable name="result">
diff --git a/transformations.xpr b/transformations.xpr
index 238851f762c8b59db6b9d3234b1597c982cf9773..6310322fb87491b12779c578bd5c69511a81ad62 100644
--- a/transformations.xpr
+++ b/transformations.xpr
@@ -18,16 +18,14 @@
                                 </field>
                                 <field name="scenarioIds">
                                     <list>
-                                        <String>db2xhtml</String>
-                                        <String>db2xhtml-soll-haben</String>
-                                        <String>db2xhtml fragment</String>
+                                        <String>toc</String>
+                                        <String>notoc</String>
                                     </list>
                                 </field>
                                 <field name="scenarioTypes">
                                     <list>
                                         <String>XML</String>
                                         <String>XML</String>
-                                        <String>XML</String>
                                     </list>
                                 </field>
                             </scenarioAssociation>
@@ -345,6 +343,111 @@
                                     <String-array/>
                                 </field>
                             </scenario>
+                            <scenario>
+                                <field name="advancedOptionsMap">
+                                    <null/>
+                                </field>
+                                <field name="name">
+                                    <String>db2xhtml fragment</String>
+                                </field>
+                                <field name="baseURL">
+                                    <String></String>
+                                </field>
+                                <field name="footerURL">
+                                    <String></String>
+                                </field>
+                                <field name="fOPMethod">
+                                    <String>pdf</String>
+                                </field>
+                                <field name="fOProcessorName">
+                                    <String>Apache FOP</String>
+                                </field>
+                                <field name="headerURL">
+                                    <String></String>
+                                </field>
+                                <field name="inputXSLURL">
+                                    <String>${currentFileURL}</String>
+                                </field>
+                                <field name="inputXMLURL">
+                                    <String>${pdu}/src/test/resources/enztest.xml</String>
+                                </field>
+                                <field name="defaultScenario">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="isFOPPerforming">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="type">
+                                    <String>XML</String>
+                                </field>
+                                <field name="saveAs">
+                                    <Boolean>true</Boolean>
+                                </field>
+                                <field name="openInBrowser">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="outputFile">
+                                    <null/>
+                                </field>
+                                <field name="openOtherLocationInBrowser">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="locationToOpenInBrowserURL">
+                                    <null/>
+                                </field>
+                                <field name="openInEditor">
+                                    <Boolean>true</Boolean>
+                                </field>
+                                <field name="showInHTMLPane">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="showInXMLPane">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="showInSVGPane">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="showInResultSetPane">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="useXSLTInput">
+                                    <Boolean>true</Boolean>
+                                </field>
+                                <field name="xsltParams">
+                                    <list>
+                                        <transformationParameter>
+                                            <field name="paramDescription">
+                                                <paramDescriptor>
+                                                    <field name="localName">
+                                                        <String>ID</String>
+                                                    </field>
+                                                    <field name="prefix">
+                                                        <null/>
+                                                    </field>
+                                                    <field name="namespace">
+                                                        <null/>
+                                                    </field>
+                                                </paramDescriptor>
+                                            </field>
+                                            <field name="value">
+                                                <String>ler-19122-d1e641</String>
+                                            </field>
+                                            <field name="hasXPathValue">
+                                                <Boolean>false</Boolean>
+                                            </field>
+                                        </transformationParameter>
+                                    </list>
+                                </field>
+                                <field name="cascadingStylesheets">
+                                    <String-array/>
+                                </field>
+                                <field name="xslTransformer">
+                                    <String>Saxon-PE</String>
+                                </field>
+                                <field name="extensionURLs">
+                                    <String-array/>
+                                </field>
+                            </scenario>
                             <scenario>
                                 <field name="advancedOptionsMap">
                                     <null/>
@@ -682,7 +785,7 @@
                                     <null/>
                                 </field>
                                 <field name="name">
-                                    <String>db2xhtml fragment</String>
+                                    <String>toc</String>
                                 </field>
                                 <field name="baseURL">
                                     <String></String>
@@ -703,7 +806,7 @@
                                     <String>${currentFileURL}</String>
                                 </field>
                                 <field name="inputXMLURL">
-                                    <String>${pdu}/src/test/resources/enztest.xml</String>
+                                    <String>${pdu}/src/test/resources/gedichte-anakreons-corpus.xml</String>
                                 </field>
                                 <field name="defaultScenario">
                                     <Boolean>false</Boolean>
@@ -733,7 +836,7 @@
                                     <Boolean>true</Boolean>
                                 </field>
                                 <field name="showInHTMLPane">
-                                    <Boolean>false</Boolean>
+                                    <Boolean>true</Boolean>
                                 </field>
                                 <field name="showInXMLPane">
                                     <Boolean>false</Boolean>
@@ -753,7 +856,7 @@
                                             <field name="paramDescription">
                                                 <paramDescriptor>
                                                     <field name="localName">
-                                                        <String>ID</String>
+                                                        <String>onlyTOC</String>
                                                     </field>
                                                     <field name="prefix">
                                                         <null/>
@@ -764,7 +867,7 @@
                                                 </paramDescriptor>
                                             </field>
                                             <field name="value">
-                                                <String>ler-19122-d1e641</String>
+                                                <String>true</String>
                                             </field>
                                             <field name="hasXPathValue">
                                                 <Boolean>false</Boolean>
@@ -782,6 +885,89 @@
                                     <String-array/>
                                 </field>
                             </scenario>
+                            <scenario>
+                                <field name="advancedOptionsMap">
+                                    <null/>
+                                </field>
+                                <field name="name">
+                                    <String>notoc</String>
+                                </field>
+                                <field name="baseURL">
+                                    <String></String>
+                                </field>
+                                <field name="footerURL">
+                                    <String></String>
+                                </field>
+                                <field name="fOPMethod">
+                                    <String>pdf</String>
+                                </field>
+                                <field name="fOProcessorName">
+                                    <String>Apache FOP</String>
+                                </field>
+                                <field name="headerURL">
+                                    <String></String>
+                                </field>
+                                <field name="inputXSLURL">
+                                    <String>${currentFileURL}</String>
+                                </field>
+                                <field name="inputXMLURL">
+                                    <String>${pdu}/src/test/resources/gedichte-anakreons-corpus.xml</String>
+                                </field>
+                                <field name="defaultScenario">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="isFOPPerforming">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="type">
+                                    <String>XML</String>
+                                </field>
+                                <field name="saveAs">
+                                    <Boolean>true</Boolean>
+                                </field>
+                                <field name="openInBrowser">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="outputFile">
+                                    <null/>
+                                </field>
+                                <field name="openOtherLocationInBrowser">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="locationToOpenInBrowserURL">
+                                    <null/>
+                                </field>
+                                <field name="openInEditor">
+                                    <Boolean>true</Boolean>
+                                </field>
+                                <field name="showInHTMLPane">
+                                    <Boolean>true</Boolean>
+                                </field>
+                                <field name="showInXMLPane">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="showInSVGPane">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="showInResultSetPane">
+                                    <Boolean>false</Boolean>
+                                </field>
+                                <field name="useXSLTInput">
+                                    <Boolean>true</Boolean>
+                                </field>
+                                <field name="xsltParams">
+                                    <list/>
+                                </field>
+                                <field name="cascadingStylesheets">
+                                    <String-array/>
+                                </field>
+                                <field name="xslTransformer">
+                                    <String>Saxon-PE</String>
+                                </field>
+                                <field name="extensionURLs">
+                                    <String-array/>
+                                </field>
+                            </scenario>
                         </scenario-array>
                     </entry>
                 </serializableOrderedMap>
@@ -802,4 +988,4 @@
         <file name="src/main/webapp/stylesheets/extractbody.xsl"/>
         <file name="src/main/webapp/stylesheets/frame.xsl"/>
     </projectTree>
-</project>
+</project>
\ No newline at end of file