diff --git a/ecrire/exec/auteurs.php b/ecrire/exec/auteurs.php
index b5d540ee7df0a6e33f846628139bc181d728f9f7..ba87c481b00c340bc49ebfb4a3cc86c5751a0579 100644
--- a/ecrire/exec/auteurs.php
+++ b/ecrire/exec/auteurs.php
@@ -230,7 +230,7 @@ function auteurs_href($clic, $args='', $att='')
 	$h = generer_url_ecrire('auteurs', $args);
 	$a = 'auteurs';
 	if ($_COOKIE['spip_accepte_ajax'] == 1 )
-		$att .= ("\nonclick=" . ajax_action_declencheur("\"$h\"",$a));
+		$att .= ("\nonclick=" . ajax_action_declencheur($h,$a));
 
 	return "<a href='$h#$a'$att>$clic</a>";
 }
diff --git a/ecrire/inc/actions.php b/ecrire/inc/actions.php
index 41926642fa78a881a52d8d492effa53b1f5b3cd2..2d15a5b0052e20bd8b4bb0d305a543f2791f9505 100644
--- a/ecrire/inc/actions.php
+++ b/ecrire/inc/actions.php
@@ -179,21 +179,28 @@ function ajax_action_auteur($action, $id, $script, $args='', $corps=false, $args
 
 		if ($att) $clic = "\n<div$att>$clic</div>";
 		return "<a href='$href'\nonclick="
-		.  ajax_action_declencheur("\"$ajax\"", $ancre, $fct_ajax)
+		.  ajax_action_declencheur($ajax, $ancre, $fct_ajax)
 		. ">$clic</a>";
 	}
 }
 
+//
+// Attention pour que Safari puisse manipuler cet evenement
+// il faut onsubmit="return AjaxSqueeze(x,'truc',...)"
+// et non pas onsubmit='return AjaxSqueeze(x,"truc",...)'
+//
 // http://doc.spip.org/@ajax_action_declencheur
-function ajax_action_declencheur($request, $noeud, $fct_ajax='')
-{
-	return "'return AjaxSqueeze("
+function ajax_action_declencheur($request, $noeud, $fct_ajax='') {
+	if ($request != 'this')
+		$request = "'".$request."'";
+
+	return '"return AjaxSqueeze('
 	. $request
-	. ',"'
+	. ",'"
 	. $noeud
-	. '"'
+	. "'"
 	. (!$fct_ajax ? '' : ",$fct_ajax")
-	. ")'";
+	. ')"';
 }
 
 // http://doc.spip.org/@ajax_action_greffe
diff --git a/ecrire/inc/agenda.php b/ecrire/inc/agenda.php
index d11738ce3988d5c5a25596ace111340bb0f2e72c..8857f4a7c537273237876b9a852d7dfeadd0646c 100644
--- a/ecrire/inc/agenda.php
+++ b/ecrire/inc/agenda.php
@@ -91,7 +91,7 @@ function calendrier_href($script, $annee, $mois, $jour, $type, $fin, $ancre, $im
 
 		return http_href("$h$a", $clic, $titre, $style, $class, $evt);
 	else {
-		$evt .= "\nonclick=" . ajax_action_declencheur("\"$h\"",$ancre);
+		$evt .= "\nonclick=" . ajax_action_declencheur($h,$ancre);
 		return "<a$c$s\nhref='$h$a'$evt>$clic</a>";
 	}
 }
diff --git a/ecrire/inc/discuter.php b/ecrire/inc/discuter.php
index 3c0dd6f5e0a6fe75abf594bb81e8c096621429a6..5f436e12ac35587f441919887b44c5d9cbea1d79 100644
--- a/ecrire/inc/discuter.php
+++ b/ecrire/inc/discuter.php
@@ -32,7 +32,7 @@ function formulaire_discuter($query, $total, $debut, $total_afficher, $script, $
 					$h = generer_url_ecrire($script, $a);
 				} else {
 					$h = generer_url_ecrire('discuter', $a);
-					$evt = "\nonclick=" . ajax_action_declencheur("\"$h\"",'forum');
+					$evt = "\nonclick=" . ajax_action_declencheur($h,'forum');
 				}
 				$nav .= "[<a href='$h#forum'$evt>$i-$y</a>] ";
 			}
diff --git a/ecrire/inc/forum.php b/ecrire/inc/forum.php
index ea3f66517e48bcc48300734faf26dbc5503dc07f..134f4d509cedd5e4b39b70855bb0d84393fc3dca 100644
--- a/ecrire/inc/forum.php
+++ b/ecrire/inc/forum.php
@@ -29,7 +29,7 @@ function affiche_navigation_forum($script, $args, $debut, $i, $pack, $ancre, $qu
 				$nav .= "<font size=3><b>$i</b></font> |\n";
 			else {
 				$h = generer_url_ecrire($script, $args . "&debut=$i", $e);
-				if ($e)	$e = "\nonclick=" . ajax_action_declencheur("\"$h\"",$ancre);
+				if ($e)	$e = "\nonclick=" . ajax_action_declencheur($h,$ancre);
 				$nav .= "<a href='$h'$e>$i</a> |\n";
 			}
 		}
@@ -38,7 +38,7 @@ function affiche_navigation_forum($script, $args, $debut, $i, $pack, $ancre, $qu
 
 	$h = generer_url_ecrire($script, $args . "&debut=$i");
 
-	if ($e)	$e = "\nonclick=" . ajax_action_declencheur("\"$h\"",$ancre);
+	if ($e)	$e = "\nonclick=" . ajax_action_declencheur($h,$ancre);
 
 	return "$nav<a href='$h'$e>...</a> |";
 }
diff --git a/ecrire/inc/legender_auteur.php b/ecrire/inc/legender_auteur.php
index c17a2072be858145b86f217e19f4637a8421c0a3..f414786bc847ec5041d27c4ffb333f5ed8557ed2 100644
--- a/ecrire/inc/legender_auteur.php
+++ b/ecrire/inc/legender_auteur.php
@@ -264,7 +264,7 @@ function legender_auteur_voir($auteur, $redirect)
 		$clic = _T("admin_modifier_auteur");
 		$h = generer_url_ecrire("auteur_infos","id_auteur=$id_auteur&initial=0");
 		if (($_COOKIE['spip_accepte_ajax'] == 1 ) AND !$redirect) {
-		  $evt .= "\nonclick=" . ajax_action_declencheur("\"$h\"",$ancre);
+		  $evt .= "\nonclick=" . ajax_action_declencheur($h,$ancre);
 		  $h = "<a\nhref='$h$a'$evt>$clic</a>";
 		}
 	  $res .= icone($clic, $h, "redacteurs-24.gif", "edit.gif", '', '',true);
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 2e4dea3ea8a656f849070719b62940ec4c01494f..1d9f23c7121211181c8961726d54e0239cc294f1 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -30,7 +30,7 @@ function charger_fonction($nom, $dossier='exec', $continue=false) {
 
 	// Securite de base
 	if (!preg_match(',^\w+$,', $nom))
-		redirige_par_entete('./');
+		die(htmlspecialchars($nom)." pas autorise");
 
 	if (substr($dossier,-1) != '/') $dossier .= '/';
 	// Si la fonction existe deja (definie par mes_options, par exemple)