You can process the elements in reverse order using <xsl:sort select="position()"/>:
Code:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="root">
<xsl:copy>
<xsl:apply-templates select="d1">
<xsl:sort select="position()" data-type="number" order="descending"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
<xsl:template match="d1">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
--
Martin Honnen
Microsoft MVP - XML