diff --git a/ecrire/action/tourner.php b/ecrire/action/tourner.php
index 7db7002a7de5e6553c4fc5bad0e6176fbace3fb1..c775f1e50012cb3c9a0dfb116c0efcbbe45a4594 100644
--- a/ecrire/action/tourner.php
+++ b/ecrire/action/tourner.php
@@ -21,18 +21,18 @@ function action_tourner_dist() {
 
 	include_spip('inc/actions');
 
-	$arg = $_REQUEST['arg'];
-	$hash = $_REQUEST['hash'];
-	$action = $_REQUEST['action'];
-	$redirect = $_REQUEST['redirect'];
-	$id_auteur = $_REQUEST['id_auteur'];
+	$arg = _request('arg');
+	$hash = _request('hash');
+	$action = _request('action');
+	$redirect = _request('redirect');
+	$id_auteur = _request('id_auteur');
 
 	if (!verifier_action_auteur("$action-$arg", $hash, $id_auteur)) {
 		include_spip('inc/minipres');
 		minipres(_T('info_acces_interdit'));
 	}
 
-	if (!preg_match(",^\W*(\d+)\\W+(\d+)$,", $arg, $r)) {
+	if (!preg_match(",^\W*(\d+)\W?(-?\d+)$,", $arg, $r)) {
 		 spip_log("action_tourner_dist $arg pas compris");
 	} else {
 	$var_rot = $r[2];
diff --git a/ecrire/exec/articles_edit.php b/ecrire/exec/articles_edit.php
index 5b45679f4603cd00a1cc24359f35b86b7a493b86..e7250eddc5a636e392899f08af01f7b593f203e8 100644
--- a/ecrire/exec/articles_edit.php
+++ b/ecrire/exec/articles_edit.php
@@ -251,7 +251,7 @@ function formulaire_articles_edit($row, $lier_trad, $new, $champs_article) {
 		 ("<p><b>" . _T('info_post_scriptum') ."</b><br />" . "<textarea name='ps' class='forml' rows='5' cols='40' wrap=soft>" . $ps . "</textarea></p><p>\n") :
 		 ("<input type='hidden' name='ps' value=\"" . $ps . "\">")) .
 
-		(!$champs_extra ? '': extra_saisie($extra, 'articles', $id_secteur)) .
+		(!$champs_extra ? '': extra_saisie($extra, 'articles', $id_secteur, false)) .
 
 		(!$date ? '' : ("<input type='hidden' name='date' value=\"$date\" size='40'><P>")) .
 
diff --git a/ecrire/img_pack/layer.js b/ecrire/img_pack/layer.js
index 2c21061411bb54db7e1916712f26dc85d003b9c5..999fab2c5effb1d51df528098e7ff48895c52900 100644
--- a/ecrire/img_pack/layer.js
+++ b/ecrire/img_pack/layer.js
@@ -194,13 +194,17 @@ function AjaxSqueeze(trig, id)
 	var noeud = document.getElementById(id);
 	if (!noeud) return true;
 
+	if (typeof ajax_image_searching != 'undefined') {
+		noeud.innerHTML = ajax_image_searching + noeud.innerHTML;
+	}
+
 	if (typeof(trig) == 'string')
 	  return ajah('GET', trig, null, function(r) { noeud.innerHTML = r;});
 
 	s = trig.getAttribute('action');
 	for (i=0;i < trig.elements.length;i++) {
 		n = trig.elements[i].name;
-		if (n)  u += n+"="+escape(trig.elements[i].value) + '&';
+		if (n)  u += n+"="+ encodeURIComponent(trig.elements[i].value) + '&';
 	}
 
 	return !ajah('POST', // ou 'GET'
diff --git a/ecrire/inc/extra.php b/ecrire/inc/extra.php
index ea9da4ac8a5e6833f583846c205db1fefab3d026..3618af2e07da3a7e9415c672a036656c5a40cc4c 100644
--- a/ecrire/inc/extra.php
+++ b/ecrire/inc/extra.php
@@ -94,7 +94,7 @@ function extra_saisie($extra, $type, $ensemble='', $aff=true) {
 		echo $affiche;
 		fin_cadre_enfonce();
 	  } else {
-	    return debut_cadre_enfonce('',false) . $affiche . fin_cadre_enfonce('',false);
+	    return debut_cadre_enfonce('',true) . $affiche . fin_cadre_enfonce(true);
 	  }
 	}
 }
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index 9159feecca10c02994f9acc1c8699b68eb77179d..a71529cdfe6de3fc8a8bd92f49d1dde8bded3de0 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -1650,6 +1650,7 @@ function debut_javascript($admin, $stat)
 	 	http_script(
 	# tester la capacite ajax si ce n'est pas deja fait
 			$ajax . 
+			"\nvar ajax_image_searching = '<div style=\"float: ".$GLOBALS['spip_lang_right'].";\"><img src=\"".url_absolue(_DIR_IMG_PACK."searching.gif")."\" /></div>';" .
 			"\nvar admin = " . ($admin ? 1 : 0) .
 			"\nvar stat = " . ($stat ? 1 : 0) .
 			"\nvar largeur_icone = " .