diff --git a/.gitattributes b/.gitattributes
index ad8578de6f3f50c9088943c065bd18e980f5d782..c98d334474abf8b5ce27ca01080766defee6a524 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -455,7 +455,7 @@ ecrire/inc/maintenance.php -text
 ecrire/inc/message_select.php -text
 ecrire/inc/mini_nav.php -text
 ecrire/inc/minipres.php -text
-ecrire/inc/petition.php -text
+ecrire/inc/petitionner.php -text
 ecrire/inc/plugin.php -text
 ecrire/inc/popularites.php -text
 ecrire/inc/referencer_traduction.php -text
diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php
index 2e47236165df4e3df5eb025a2394541dfc73a8bf..acfbb09da409d8e7ea9918d58f6093752321a74b 100644
--- a/ecrire/exec/articles.php
+++ b/ecrire/exec/articles.php
@@ -17,7 +17,6 @@ include_spip('inc/texte');
 include_spip('inc/rubriques');
 include_spip('inc/actions');
 include_spip('inc/mots');
-include_spip('inc/petition');
 include_spip('inc/forum');
 include_spip('inc/documents');
 include_spip('base/abstract_sql');
@@ -276,16 +275,16 @@ function boite_info_articles($id_article, $statut_article, $visites, $id_version
 // http://doc.spip.org/@boites_de_config_articles
 function boites_de_config_articles($id_article)
 {
-	  debut_cadre_relief("forum-interne-24.gif");
 
-	  $nb_forums = spip_fetch_array(spip_query("SELECT COUNT(*) AS count FROM spip_forum WHERE id_article=$id_article 	AND statut IN ('publie', 'off', 'prop')"));
+	$nb_forums = spip_fetch_array(spip_query("SELECT COUNT(*) AS count FROM spip_forum WHERE id_article=$id_article 	AND statut IN ('publie', 'off', 'prop')"));
 
-	  $nb_signatures = spip_fetch_array(spip_query("SELECT COUNT(*) AS count FROM spip_signatures WHERE id_article=$id_article AND statut IN ('publie', 'poubelle')"));
+	$nb_signatures = spip_fetch_array(spip_query("SELECT COUNT(*) AS count FROM spip_signatures WHERE id_article=$id_article AND statut IN ('publie', 'poubelle')"));
 
-	  $nb_forums = $nb_forums['count'];
-	  $nb_signatures = $nb_signatures['count'];
-	  $visible = $nb_forums || $nb_signatures;
+	$nb_forums = $nb_forums['count'];
+	$nb_signatures = $nb_signatures['count'];
+	$visible = $nb_forums || $nb_signatures;
 
+	debut_cadre_relief("forum-interne-24.gif");
 	echo "<div class='verdana1' style='text-align: center;'><b>";
 	if ($visible)
 		echo bouton_block_visible("forumpetition");
@@ -300,24 +299,18 @@ function boites_de_config_articles($id_article)
 
 	echo "<font face='Verdana,Arial,Sans,sans-serif' size='1'>\n";
 
-	// Forums
-
 	if ($nb_forums) {
 		echo "<br />\n";
 		icone_horizontale(_T('icone_suivi_forum', array('nb_forums' => $nb_forums)), generer_url_ecrire("articles_forum","id_article=$id_article"), "suivi-forum-24.gif", "");
 	}
 
-	echo "<div id='poster-$id_article'>",
-	  formulaire_poster($id_article,"articles","id_article=$id_article"),
-	  '</div>';
-
-	echo '<br />';
-
-	// Petitions
+	$f = charger_fonction('poster', 'inc');
+	$g = charger_fonction('petitionner', 'inc');
 
-	echo "<div id='petitionner-$id_article'>",
-	  formulaire_petitionner($id_article,"articles","id_article=$id_article"),
-	  '</div>';
+	echo 
+	  $f($id_article,"articles","id_article=$id_article"),
+	  '<br />', 
+	  $g($id_article,"articles","id_article=$id_article");
 
 	echo fin_block();
 
diff --git a/ecrire/fragments/petitionner.php b/ecrire/fragments/petitionner.php
index 9e5e1e70a4fdd431886357d42b755c7373d631b8..d3d4071fb636be89970c0f56fb2d0dfb18372402 100644
--- a/ecrire/fragments/petitionner.php
+++ b/ecrire/fragments/petitionner.php
@@ -24,10 +24,7 @@ function fragments_petitionner_dist()
 		minipres(_T('info_acces_interdit'));
 	}
 
-	include_spip('inc/petition');
-	include_spip('inc/presentation');
-	include_spip('inc/actions');
-
-	return formulaire_petitionner($id_article, $script, "&id_article=$id_article", true);
+	$f = charger_fonction('petitionner', 'inc');
+	return $f($id_article, $script, "&id_article=$id_article", 'ajax');
 }
 ?>
diff --git a/ecrire/fragments/poster.php b/ecrire/fragments/poster.php
index 34f6fd97716d58109c7945c3f194816d4a98dcf5..f08e4ef88e5e9229dc431239c85773335882cce9 100644
--- a/ecrire/fragments/poster.php
+++ b/ecrire/fragments/poster.php
@@ -24,9 +24,7 @@ function fragments_poster_dist()
 		minipres(_T('info_acces_interdit'));
 	}
 
-	include_spip('inc/forum');
-	include_spip('inc/actions');
-
-	return formulaire_poster($id_article, $script, "&id_article=$id_article", true);
+	$f = charger_fonction('poster', 'inc');
+	return $f($id_article, $script, "&id_article=$id_article", true);
 }
 ?>
diff --git a/ecrire/inc/forum.php b/ecrire/inc/forum.php
index 844735588b2f3d97e826cda57d4aef29011cd4f7..8c3b069508b6e662dcac5556285c8d83f1448482 100644
--- a/ecrire/inc/forum.php
+++ b/ecrire/inc/forum.php
@@ -247,57 +247,4 @@ function generer_url_forum_dist($id_forum, $show_thread=false) {
 		  return '';
 	}
 }
-
-
-// Recuperer le reglage des forums publics de l'article x
-// http://doc.spip.org/@get_forums_publics
-function get_forums_publics($id_article=0) {
-	$forums_publics = $GLOBALS['meta']["forums_publics"];
-	if ($id_article) {
-		$res = spip_query("SELECT accepter_forum FROM spip_articles WHERE id_article=$id_article");
-
-		if ($obj = spip_fetch_array($res))
-			$forums_publics = $obj['accepter_forum'];
-	} else { // dans ce contexte, inutile
-		$forums_publics = substr($GLOBALS['meta']["forums_publics"],0,3);
-	}
-	return $forums_publics;
-}
-
-// Cree le formulaire de modification du reglage des forums de l'article
-// http://doc.spip.org/@formulaire_poster
-function formulaire_poster($id_article, $script, $args, $ajax=false) {
-	global $spip_lang_right;
-
-	$statut_forum = get_forums_publics($id_article);
-
-	$r.= "\n\t"
-	. _T('info_fonctionnement_forum')
-	. "\n\t<select name='change_accepter_forum'
-		class='fondl'
-		style='font-size:10px;'
-		onchange=\"findObj_forcer('valider_poster_$id_article').style.visibility='visible';\"
-		>";
-
-	foreach (array(
-		'pos'=>_T('bouton_radio_modere_posteriori'),
-		'pri'=>_T('bouton_radio_modere_priori'),
-		'abo'=>_T('bouton_radio_modere_abonnement'),
-		'non'=>_T('info_pas_de_forum'))
-		as $val => $desc) {
-		$r .= "\n\t<option";
-		if ($statut_forum == $val)
-			$r .= " selected='selected'";
-		$r .= " value='$val'>".$desc."</option>";
-	}
-	$r .= "\n\t</select>\n";
-
-	$r .= "<div align='$spip_lang_right' id='valider_poster_$id_article'"
-	. ($ajax ? '' : " class='visible_au_chargement'")
-	. ">\n\t<input type='submit' class='fondo' style='font-size:10px' value='"
-	. _T('bouton_changer')
-	. "' /></div>\n";
-	return ajax_action_auteur('poster', $id_article, $script, $args, $r);
-
-}
 ?>
diff --git a/ecrire/inc/petition.php b/ecrire/inc/petitionner.php
similarity index 92%
rename from ecrire/inc/petition.php
rename to ecrire/inc/petitionner.php
index 7db6fb427e48882a43fc972d63b499fc6f17d4cf..93a19cd50c6ac5e4dd797b52a505f4f84a3be6e9 100644
--- a/ecrire/inc/petition.php
+++ b/ecrire/inc/petitionner.php
@@ -11,10 +11,13 @@
 \***************************************************************************/
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/presentation');
 include_spip('inc/actions');
+include_spip('inc/texte');
 
 // http://doc.spip.org/@formulaire_petitionner
-function formulaire_petitionner($id_article, $script, $args, $ajax=false)
+function inc_petitionner_dist($id_article, $script, $args, $ajax=false)
 {
 	global $spip_lang_right;
 
@@ -83,7 +86,7 @@ function formulaire_petitionner($id_article, $script, $args, $ajax=false)
 		$res .=" <label for='message'>"._T('bouton_checkbox_envoi_message')."</label>";
 
 		$res .= "<br />"._T('texte_descriptif_petition')."&nbsp;:<BR />";
-		$res .="<TEXTAREA NAME='texte_petition' CLASS='forml' ROWS='4' COLS='10' wrap=soft>";
+		$res .="<TEXTAREA NAME='texte_petition' CLASS='forml' ROWS='4' COLS='10' wrap='soft'>";
 		$res .=entites_html($texte_petition);
 		$res .="</TEXTAREA>\n";
 
@@ -91,7 +94,10 @@ function formulaire_petitionner($id_article, $script, $args, $ajax=false)
 	} else $res .="<span class='visible_au_chargement' id='valider_petition'>";
 	$res .="<input type='submit' CLASS='fondo' VALUE='"._T('bouton_changer')."' STYLE='font-size:10px' />";
 	$res .="</span>";
+	$res = ajax_action_auteur('petitionner', $id_article, $script, $args, $res);
 
-	return ajax_action_auteur('petitionner', $id_article, $script, $args, $res);
+	return ($ajax == 'ajax') 
+	? $res
+	: "<div id='petitionner-$id_article'>$res</div>";
 }
 ?>