<xsl:variable name="linenumber" select="count(preceding-sibling::l)+1"/>
<span class="line" id="line{$linenumber}"><xsl:apply-templates /></span>
doesn't that want to be
<xsl:variable name="linenumber"
select="count(../preceding-sibling::lg/l)+count(preceding-sibling::l)+1"/>
(or you could use xsl:number level=any from=div )
<xsl:choose>
<xsl:when test="$linenumber mod 5 = 1">
<span class="line" id="line{$linenumber}">...
</xsl:when>
<xsl:otherwise>
<span class="line">....
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________