diff --git a/ecrire/action/editer_article.php b/ecrire/action/editer_article.php
index e1ab11a3a5885489567e2dd8c7b92e48998a08df..6d594fd599b931b479706bc04397b78936d87574 100644
--- a/ecrire/action/editer_article.php
+++ b/ecrire/action/editer_article.php
@@ -106,7 +106,7 @@ function revisions_articles ($id_article, $new) {
 
 	// ne pas accepter de titre vide
 	if (_request('titre') === '')
-		$_POST['titre'] = _T('ecrire:info_sans_titre');
+		_request('titre', _T('ecrire:info_sans_titre'));
 
 	foreach (array(
 	'surtitre', 'titre', 'soustitre', 'descriptif',
@@ -220,10 +220,10 @@ function revisions_articles ($id_article, $new) {
 
 // http://doc.spip.org/@trop_longs_articles
 function trop_longs_articles() {
-	if (isset($_POST['texte_plus']) && is_array($_POST['texte_plus'])) {
-		foreach ($_POST['texte_plus'] as $t) {
-			$_POST['texte'] = preg_replace(",<!--SPIP-->[\n\r]*,","", $t)
-				. $_POST['texte'];
+	if (is_array($plus = _request('texte_plus')) {
+		foreach ($plus as $t) {
+			_request('texte', preg_replace(",<!--SPIP-->[\n\r]*,","", $t)
+				. _request('texte'));
 		}
 	}
 }
diff --git a/ecrire/action/editer_auteurs.php b/ecrire/action/editer_auteurs.php
index 079732886504b1c266ddcc65b340d33e3e5cbf55..ddf47f99c3e688c48b93c010579ac4ff312cae7e 100644
--- a/ecrire/action/editer_auteurs.php
+++ b/ecrire/action/editer_auteurs.php
@@ -31,9 +31,9 @@ function action_editer_auteurs_dist() {
 		ajouter_auteur_et_rediriger($r[1], $r[2], $redirect);
 	}
 	elseif (preg_match(",^\W*(\d+)$,", $arg, $r)) {
-		if  ($nouv_auteur = intval($_POST['nouv_auteur'])) {
-		  ajouter_auteur_et_rediriger($r[1], $nouv_auteur, $redirect);
-		} else if ($cherche = $_POST['cherche_auteur']) {
+		if  ($nouv_auteur = intval(_request('nouv_auteur'))) {
+			ajouter_auteur_et_rediriger($r[1], $nouv_auteur, $redirect);
+		} else if ($cherche = _request('cherche_auteur')) {
 			$res = rechercher_auteurs($cherche);
 			$n = count($res);
 			if ($n == 1)
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index c43c306a8eb210a51ceec844e074bf3db7a40f86..639e04a499580d6a57b09fa5ee5cf9172746ad1c 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -247,8 +247,12 @@ function spip_abstract_quote($arg_sql) {
 // http://doc.spip.org/@_request
 function _request($var) {
 	// set ?
-	if (func_num_args()>1)
-		$_GET[$var] = func_get_arg(1);
+	if (func_num_args()>1) {
+		unset($_GET[$var]); // au cas ou l'on fait _request('truc', NULL);
+		unset($_POST[$var]);
+		if (func_get_arg(1) !== NULL)
+			$_GET[$var] = func_get_arg(1);
+	}
 
 	if (isset($_GET[$var])) $a = $_GET[$var];
 	elseif (isset($_POST[$var])) $a = $_POST[$var];