Your problem is here:
<xsl:apply-templates select="//subject">
<xsl:sort select="prtnbr">
</xsl:apply-templates>
You are sorting the subject elements only - in your sample there is only 1 subject element, so the order is insignificant.
Add <xsl:sort select="." /> after the <xsl:for-each select="prtlist/prtrow"> (the context of the sort is the collection of nodes to sort, in this case the prtrows).
/- Sam Judson : Wrox Technical Editor -/
|