diff --git a/ecrire/config-lang.php3 b/ecrire/config-lang.php3
index 3af97bd0412d445db6f8d2673c8a413778d2ab0b..65d4b49b164bfea9f1725aec071c02312afdcd17 100644
--- a/ecrire/config-lang.php3
+++ b/ecrire/config-lang.php3
@@ -55,7 +55,7 @@ echo "<input type='hidden' name='changer_config' value='oui'>";
 
 debut_cadre_couleur("langues-24.gif", false, "", _T('info_langue_principale'));
 
-$langues_prop = split(",",lire_meta("langues_proposees"));
+$langues_prop = split(",",$all_langs);
 $langue_site = lire_meta('langue_site');
 
 echo _T('texte_selection_langue_principale');
diff --git a/ecrire/inc_lang.php3 b/ecrire/inc_lang.php3
index f7dc89b9ea6d58d82939c771e4c9ffc8c11d43dc..38dce0952cd94eb04caf27f74030071baf76c0d7 100644
--- a/ecrire/inc_lang.php3
+++ b/ecrire/inc_lang.php3
@@ -551,7 +551,8 @@ function init_langues() {
 	global $all_langs, $langue_site;
 	global $pile_langues, $lang_typo, $lang_dir;
 
-	$all_langs = lire_meta('langues_proposees');
+	$all_langs = lire_meta('langues_proposees')
+		.lire_meta('langues_proposees2');
 	$langue_site = lire_meta('langue_site');
 	$pile_langues = array();
 	$lang_typo = '';
@@ -579,7 +580,15 @@ function init_langues() {
 					ecrire_meta('langue_site', $langue_site);
 			}
 			if (defined("_ECRIRE_INC_META")) {
-				ecrire_meta('langues_proposees', $all_langs);
+				# sur spip.net le nombre de langues proposees fait exploser
+				# ce champ limite a 255 caracteres ; a revoir...
+				if (strlen($all_langs) <= 255) {
+					ecrire_meta('langues_proposees', $all_langs);
+					effacer_meta('langues_proposees2');
+				} else {
+					ecrire_meta('langues_proposees', substr($all_langs,0,255));
+					ecrire_meta('langues_proposees2', substr($all_langs,255));
+				}
 				ecrire_metas();
 			}
 		}
diff --git a/formulaires/inc-menu_lang_ecrire.php3 b/formulaires/inc-menu_lang_ecrire.php3
index 519431ad0e10c74360e8598e025faa8a4927b13a..c99b6114a13679e87bac04a6ea777e88f785e6fc 100644
--- a/formulaires/inc-menu_lang_ecrire.php3
+++ b/formulaires/inc-menu_lang_ecrire.php3
@@ -9,7 +9,9 @@ $balise_MENU_LANG_ECRIRE_collecte = array('menu_lang');
 
 // s'il n'y a qu'une langue proposee eviter definitivement la balise ?php 
 function balise_MENU_LANG_ECRIRE_stat ($args, $filtres) {
-	if (!strpos(lire_meta('langues_proposees'),',')) return '';
+	global $all_langs;
+	include_ecrire('inc_lang.php3');
+	if (!strpos($all_langs,',')) return '';
 	return $args;
 }