Michael-
  You say:
===================
The call:
    <xsl:apply-templates select="following-sibling::*[1]" mode="sn5">
      <xsl:with-param name="parents" select="concat($ID, ',',
$adjustedParents)" />
    </xsl:apply-templates>
will generate a new stack frame for each sibling that is processed.
====================
I assume that it's not simply the <xsl:apply-template ...> call that pushes
stack. What is it about my code that causes stack push? Is it the select
expression, the mode, or the use of a param?
Thanks, 
Bill
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list