diff --git a/ecrire/inc/extra.php b/ecrire/inc/extra.php
index 5d5540cd2374f78cf57dfe91ebfbbd1eed3cf04f..86a479fc65452cfd571e332c74d3b648c01a0f0a 100644
--- a/ecrire/inc/extra.php
+++ b/ecrire/inc/extra.php
@@ -132,6 +132,7 @@ function extra_form($extra, $type, $ensemble='') {
 
 	// maintenant, on affiche les formulaires pour les champs renseignes dans $extra
 	// et pour les champs proposes
+	$affiche = "<input type='hidden' name='extra' value='1' />\n";
 	reset($champs_proposes);
 	while (list(, $champ) = each($champs_proposes)) {
 		$desc = $champs[$champ];
@@ -157,7 +158,7 @@ function extra_form($extra, $type, $ensemble='') {
 			case "select":
 				$choix = explode(",",$choix);
 				if (!is_array($choix)) {
-					$affiche .= "Pas de choix d&eacute;finis.\n";
+					$affiche .= _L("Pas de choix d&eacute;finis")."\n";
 					break;
 				}
 
diff --git a/ecrire/inc/modifier.php b/ecrire/inc/modifier.php
index dc05db5892ae47356e669f1ed871bb63b07dd608..fd60a5a1e951801aedb4d9b3e01210185eb8c0f8 100644
--- a/ecrire/inc/modifier.php
+++ b/ecrire/inc/modifier.php
@@ -66,10 +66,13 @@ function modifier_contenu($type, $id, $options, $c=false, $serveur='') {
 	// Nettoyer les valeurs
 	$champs = array_map('corriger_caracteres', $champs);
 
-	// recuperer les extras
-	if ($GLOBALS['champs_extra']) {
+	// recuperer les extras (utilise $_POST, un peu sale...
+	// a voir pour le faire marcher avec les crayons)
+	if (isset($desc['field']['extra'])
+	AND isset($_POST['extra'])
+	AND $GLOBALS['champs_extra']) {
 		include_spip('inc/extra');
-		if ($extra = extra_update($table_objet, $id, $champs))
+		if ($extra = extra_update($table_objet, $id, $_POST))
 			$champs['extra'] = $extra;
 	}