diff --git a/ecrire/action/editer_rubrique.php b/ecrire/action/editer_rubrique.php
index 2a86eb745bc14341f8c3cd19e91ee046667b6157..1e88566453c343e20d227245848b65ddf5c86961 100644
--- a/ecrire/action/editer_rubrique.php
+++ b/ecrire/action/editer_rubrique.php
@@ -101,9 +101,9 @@ function enregistre_modifier_naviguer($id_rubrique, $id_parent, $titre, $texte,
 
 	if ($id_parent == $id_rubrique) $parent = ''; // au fou
 
-	if (_request('champs_extra')) {
-			include_spip('inc/extra');
-			$extra = extra_recup_saisie("rubriques");
+	if ($GLOBALS['champs_extra']) {
+		include_spip('inc/extra');
+		$extra = extra_recup_saisie("rubriques");
 	}
 	else $extra = '';
 
diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php
index 0f7d72762756c30ff38786e328e905236dc01fc6..45e991d84a2a422404c07eaa241acd10d60aabfc 100644
--- a/ecrire/exec/articles.php
+++ b/ecrire/exec/articles.php
@@ -401,7 +401,7 @@ function afficher_corps_articles($virtuel, $chapo, $texte, $ps,  $extra)
 		
 		if ($champs_extra AND $extra) {
 			include_spip('inc/extra');
-			$res .= extra_affichage($extra, "articles", true);
+			$res .= extra_affichage($extra, "articles");
 		}
 	}
 	return $res;
diff --git a/ecrire/exec/articles_ortho.php b/ecrire/exec/articles_ortho.php
index 789ab9c7731c765e592a075eb940a8c3457370a5..0c4f9131d2797ae48ee4b76e2ea18c906650bc58 100644
--- a/ecrire/exec/articles_ortho.php
+++ b/ecrire/exec/articles_ortho.php
@@ -282,7 +282,7 @@ else {
 
 	if ($champs_extra AND $extra) {
 		include_spip('inc/extra');
-		extra_affichage($extra, "articles");
+		echo extra_affichage($extra, "articles");
 	}
 }
 
diff --git a/ecrire/exec/articles_versions.php b/ecrire/exec/articles_versions.php
index dc0e107202c9e1233cc4de9a725eb97ff3fa5b9a..7d14d461c2ce709054de009d8982453f463eb238 100644
--- a/ecrire/exec/articles_versions.php
+++ b/ecrire/exec/articles_versions.php
@@ -319,7 +319,7 @@ if ($id_version) {
 	
 		if ($champs_extra AND $extra) {
 			include_spip('inc/extra');
-			extra_affichage($extra, "articles");
+			echo extra_affichage($extra, "articles");
 		}
 	}
 }
diff --git a/ecrire/exec/breves_edit.php b/ecrire/exec/breves_edit.php
index 93bc08c992136477cb2b807ca196a16519f8f4f3..17d82dd05aa0c89315290731493b691ef6d60e48 100644
--- a/ecrire/exec/breves_edit.php
+++ b/ecrire/exec/breves_edit.php
@@ -167,7 +167,7 @@ if ($connect_statut=="0minirezo" OR $statut=="prop" OR $new == "oui") {
 
 	if ($champs_extra) {
 		include_spip('inc/extra');
-		extra_saisie($extra, 'breves', $id_rubrique);
+		echo extra_saisie($extra, 'breves', $id_rubrique);
 	}
 
 	if ($connect_statut=="0minirezo" AND acces_rubrique($id_rubrique)) {
diff --git a/ecrire/exec/breves_voir.php b/ecrire/exec/breves_voir.php
index 23125f4a20ff653a6373d4aa6e66ba4ae5204295..99139a75d381ade6f8fd5f76b5b73ab3c84e5074 100644
--- a/ecrire/exec/breves_voir.php
+++ b/ecrire/exec/breves_voir.php
@@ -183,7 +183,7 @@ function afficher_breves_voir($id_breve, $changer_lang, $cherche_mot, $select_gr
 	// afficher les extra
 	if ($champs_extra AND $extra) {
 		include_spip('inc/extra');
-		extra_affichage($extra, "breves");
+		echo extra_affichage($extra, "breves");
 	}
 
 	if ($connect_statut=="0minirezo" AND acces_rubrique($id_rubrique) AND ($statut=="prop" OR $statut=="prepa")){
diff --git a/ecrire/exec/mots_edit.php b/ecrire/exec/mots_edit.php
index b85cb3612baf9979ef952b4d8d2117b301278e2f..9afdaac7b295c7ea26f4d225507f51d45e27ab6a 100644
--- a/ecrire/exec/mots_edit.php
+++ b/ecrire/exec/mots_edit.php
@@ -263,7 +263,7 @@ if (acces_mots()){
 
 	if ($champs_extra) {
 		include_spip('inc/extra');
-		extra_saisie($extra, 'mots', $id_groupe);
+		echo extra_saisie($extra, 'mots', $id_groupe);
 	}
 
 	echo "<DIV align='right'><input type='submit' NAME='Valider' VALUE='"._T('bouton_enregistrer')."' CLASS='fondo'></div>";
diff --git a/ecrire/exec/naviguer.php b/ecrire/exec/naviguer.php
index 06646cadb66ffed1572fffd1334e7c9ba099eb38..4016ecbfaafe74f7f4ad9831ea2a8bcaacb25b0d 100644
--- a/ecrire/exec/naviguer.php
+++ b/ecrire/exec/naviguer.php
@@ -92,7 +92,7 @@ function exec_naviguer_dist()
 
 	  if ($extra) {
 		include_spip('inc/extra');
-		extra_affichage($extra, "rubriques");
+		echo extra_affichage($extra, "rubriques");
 	  }
 
 /// Mots-cles
diff --git a/ecrire/exec/rubriques_edit.php b/ecrire/exec/rubriques_edit.php
index 66c0185bb2d189ddb1106ec65828e85c07ff2edb..2106f5a0acfb359d786223f64bd37535cddcdd46 100644
--- a/ecrire/exec/rubriques_edit.php
+++ b/ecrire/exec/rubriques_edit.php
@@ -148,7 +148,7 @@ function exec_rubriques_edit_dist()
 
 	if ($champs_extra) {
 		include_spip('inc/extra');
-		extra_saisie($extra, 'rubriques', $id_secteur);
+		$form .= extra_saisie($extra, 'rubriques', $id_secteur);
 	}
 
 	$form .= "<input type='hidden' name='new' value='"
diff --git a/ecrire/exec/sites.php b/ecrire/exec/sites.php
index b83ee9faf5f0745d2247764a77580a755341fbaf..21c66ac27b7bd52d54d0802110302126de5b4d19 100644
--- a/ecrire/exec/sites.php
+++ b/ecrire/exec/sites.php
@@ -506,7 +506,7 @@ else if (preg_match(',^select: (.*),', trim($url_syndic), $regs)) {
 
 if ($champs_extra AND $extra) {
 		include_spip('inc/extra');
-		extra_affichage($extra, "sites");
+		echo extra_affichage($extra, "sites");
 	}
 
 fin_cadre_relief();
diff --git a/ecrire/exec/sites_edit.php b/ecrire/exec/sites_edit.php
index c075e0a44b958175b03f2c5875695e904c136db6..3cbb14a87796a54f22316ab9e0ebb5f7f8323d24 100644
--- a/ecrire/exec/sites_edit.php
+++ b/ecrire/exec/sites_edit.php
@@ -189,9 +189,9 @@ else {
 
 
 if ($champs_extra) {
-		include_spip('inc/extra');
-		extra_saisie($extra, 'sites', intval($id_secteur));
-	}
+	include_spip('inc/extra');
+	echo extra_saisie($extra, 'sites', intval($id_secteur));
+}
 
 
 echo "\n<div ALIGN='right'><INPUT TYPE='submit' NAME='Valider' VALUE='"._T('bouton_enregistrer')."' CLASS='fondo'></div>";
diff --git a/ecrire/inc/editer_article.php b/ecrire/inc/editer_article.php
index a92ff910f6deb4ae3cd9b4633d73b3e86151c293..3db5005266edc147edd42179f356863929e17984 100644
--- a/ecrire/inc/editer_article.php
+++ b/ecrire/inc/editer_article.php
@@ -141,7 +141,7 @@ function inc_editer_article($row, $lier_trad, $new, $champs_article) {
 		 ("\n<p><b>" . _T('info_post_scriptum') ."</b><br />" . "<textarea name='ps' class='forml' rows='5' cols='40' wrap=soft>" . $ps . "</textarea></p><p>\n") :
 		 '') .
 
-		(!$champs_extra ? '': extra_saisie($extra, 'articles', $id_secteur, false)) .
+		(!$champs_extra ? '': extra_saisie($extra, 'articles', $id_secteur)) .
 
 		"<div align='right'><input class='fondo' type='submit' value='" . _T('bouton_enregistrer') . "' /></div>";
 
diff --git a/ecrire/inc/extra.php b/ecrire/inc/extra.php
index 50dbdc42697e8a5fb9428a7a452790d590ca76cc..02bf4dbe40b9077743616e685c592ca63bf54258 100644
--- a/ecrire/inc/extra.php
+++ b/ecrire/inc/extra.php
@@ -88,15 +88,11 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 // a partir de la liste des champs, generer la liste des input
 // http://doc.spip.org/@extra_saisie
-function extra_saisie($extra, $type, $ensemble='', $aff=true) {
+function extra_saisie($extra, $type, $ensemble='') {
 	if ($affiche = extra_form($extra, $type, $ensemble)) {
-	  if ($aff) {
-		debut_cadre_enfonce();
-		echo $affiche;
-		fin_cadre_enfonce();
-	  } else {
-	    return debut_cadre_enfonce('',true) . $affiche . fin_cadre_enfonce(true);
-	  }
+		return debut_cadre_enfonce('',true)
+			. $affiche
+			. fin_cadre_enfonce(true);
 	}
 }
 
@@ -322,7 +318,7 @@ function extra_champ_valide($type, $nom_champ) {
 
 // a partir de la liste des champs, generer l'affichage
 // http://doc.spip.org/@extra_affichage
-function extra_affichage($extra, $type, $return=false) {
+function extra_affichage($extra, $type) {
 	$extra = unserialize ($extra);
 	if (!is_array($extra)) return;
 	$champs = $GLOBALS['champs_extra'][$type];
@@ -361,11 +357,10 @@ function extra_affichage($extra, $type, $return=false) {
 			.interdire_scripts($contenu)."<br /></div>\n";
 	}
 
-	if ($affiche) {
-		$affiche = debut_cadre_enfonce('',true) . $affiche . fin_cadre_enfonce(true);
-		if ($return) return $affiche; else echo $affiche;
-	}
-
+	if ($affiche)
+		return debut_cadre_enfonce('',true)
+			. $affiche
+			. fin_cadre_enfonce(true);
 }
 
 ?>
diff --git a/ecrire/inc/legender_auteur.php b/ecrire/inc/legender_auteur.php
index f414786bc847ec5041d27c4ffb333f5ed8557ed2..c0d5d0e92d55482c74996ab7726941a4084d7573 100644
--- a/ecrire/inc/legender_auteur.php
+++ b/ecrire/inc/legender_auteur.php
@@ -110,7 +110,7 @@ function legender_auteur_saisir($id_auteur, $auteur, $mode, $echec='', $redirect
 
 	if ($champs_extra) {
 		include_spip('inc/extra');
-		$corps .= extra_saisie($auteur['extra'], 'auteurs', $auteur['statut'],'', false);
+		$corps .= extra_saisie($auteur['extra'], 'auteurs', $auteur['statut']);
 	}
 
 //
@@ -276,7 +276,7 @@ function legender_auteur_voir($auteur, $redirect)
 
 	if ($champs_extra AND $extra) {
 		include_spip('inc/extra');
-		$res .= extra_affichage($extra, "auteurs", true);
+		$res .= extra_affichage($extra, "auteurs");
 	}
 
 	return $res;