diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php
index 0b3346d42f17e4772c08ee7c635c1e51f7dbdfd1..a90fe7bd048d492ba16d9a5acf8da40c824eb581 100644
--- a/ecrire/inc/texte.php
+++ b/ecrire/inc/texte.php
@@ -100,10 +100,10 @@ function code_echappement($rempl, $source='') {
 	$return = '';
 
 	// Decouper en morceaux, base64 a des probleme selon la taille de la pile
-	$arempl = str_split($rempl, 30000);
-	foreach($arempl as $rempl) {
+	$taille = 30000;
+	for($i = 0; $i < strlen($rempl); $i += $taille) {
 		// Convertir en base64
-		$base64 = base64_encode($rempl);
+		$base64 = base64_encode(substr($rempl, $i, $taille));
 		$return .=
 			inserer_attribut("<$mode class=\"base64$source\">", 'title', $base64)
 					                ."</$mode>";