backport of upstream changes, not working yet, it duplicates some text...

--- a/xsl/miseEnPage.xsl
+++ b/xsl/miseEnPage.xsl
@@ -60,12 +60,17 @@ $modeLigneVide 	= 0 -> conserver lignes
 <!-- TEMPLATE PRINCIPAL DE MISE EN PAGE -->
 <xsl:template name="miseEnPage">
 
-	<saxon:iterate select="*" xmlns:saxon="http://saxon.sf.net/" xsl:extension-element-prefixes="saxon">
+<!--	<saxon:iterate select="*" xmlns:saxon="http://saxon.sf.net/" xsl:extension-element-prefixes="saxon"> -->
+		<xsl:param name="numNoeud" as="xs:integer" select="1" />
 		<xsl:param name="numPage" as="xs:integer" select="1" />
 		<xsl:param name="numLigne" as="xs:integer" select="1" />
+
+		<xsl:variable name="currentNode" select="*[$numNoeud]"/>
+		<xsl:variable name="nbNoeuds" select="count(*)" />
 		
 		<!-- <xsl:value-of select="concat('PROUT',count(*[$numNoeud][self::titre and preceding-sibling::*[string(.)][1][not(self::titre)]]))" /> -->
 		<xsl:variable name="texteMisEnPage" as="xs:string*">
+			<xsl:for-each select="$currentNode">
 			<xsl:choose>
 				<!-- saut de page -->
 				<xsl:when test="self::page-break">
@@ -105,6 +110,7 @@ $modeLigneVide 	= 0 -> conserver lignes
 				</xsl:when>
 				<xsl:otherwise><xsl:text></xsl:text></xsl:otherwise>
 			</xsl:choose>
+			</xsl:for-each>
 		</xsl:variable>
 		
 		<!-- ******** affichage du texte ********* -->
@@ -114,16 +120,20 @@ $modeLigneVide 	= 0 -> conserver lignes
 		<xsl:variable name="nouvPage" as="xs:integer" select="doc:nouvellePage($texteMisEnPageJoint,$numPage)" />
 		<xsl:variable name="nouvLigne" as="xs:integer" select="doc:nouvelleLigne($texteMisEnPageJoint,$numLigne)" />
 		
-		<xsl:if test="$mise_en_page and position()=last()"> <!-- appel final pour num de page et saut de page -->
+		<!-- appel final pour num de page et saut de page -->
+		<xsl:if test="$mise_en_page and $numNoeud=$nbNoeuds">
 			<xsl:variable name="completeLastPage" as="xs:string" select="doc:sautePage(true(),$nouvLigne,$nouvPage)" />
 			<xsl:value-of select="translate($completeLastPage,concat($sautAGenerer,$espace),'&#10;&pt;')" />
 		</xsl:if>
 		
-		<saxon:continue>
+	<!-- si on est pas à la dernière phrase, on continue -->
+	<xsl:if test="($numNoeud &lt; $nbNoeuds)">
+		<xsl:call-template name="miseEnPage">
+			<xsl:with-param name="numNoeud" as="xs:integer" select="($numNoeud + 1)" />
 			<xsl:with-param name="numPage" as="xs:integer" select="$nouvPage" />
 			<xsl:with-param name="numLigne" as="xs:integer" select="$nouvLigne" />
-		</saxon:continue>
-	</saxon:iterate>
+		</xsl:call-template>
+	</xsl:if>
 	<!-- <xsl:value-of select="concat('nouvpage',$nouvPage,'nouvligne',$nouvLigne,'matches ', string($pagesEnPlus),' ',string($lignesEnPlus))" /> -->
 
 </xsl:template>
