diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php
index 56ef7a88fd856ed3d3ae8230496e2821a122a75b..0b3346d42f17e4772c08ee7c635c1e51f7dbdfd1 100644
--- a/ecrire/inc/texte.php
+++ b/ecrire/inc/texte.php
@@ -93,17 +93,23 @@ function nettoyer_chapo($chapo){
 function code_echappement($rempl, $source='') {
 	if (!strlen($rempl)) return '';
 
-	// Convertir en base64
-	$base64 = base64_encode($rempl);
-
 	// Tester si on echappe en span ou en div
 	$mode = preg_match(',</?('._BALISES_BLOCS.')[>[:space:]],iS', $rempl) ?
 		'div' : 'span';
 	$nn = ($mode == 'div') ? "\n\n" : '';
+	$return = '';
+
+	// Decouper en morceaux, base64 a des probleme selon la taille de la pile
+	$arempl = str_split($rempl, 30000);
+	foreach($arempl as $rempl) {
+		// Convertir en base64
+		$base64 = base64_encode($rempl);
+		$return .=
+			inserer_attribut("<$mode class=\"base64$source\">", 'title', $base64)
+					                ."</$mode>";
+	}
 
-	return
-		inserer_attribut("<$mode class=\"base64$source\">", 'title', $base64)
-		."</$mode>$nn";
+	return $return . $nn;
 }
 
 // Echapper les <html>...</ html>