diff --git a/ecrire/balise/url_logout.php b/ecrire/balise/url_logout.php
index 9008385599786d95ad36a3439e6a63d2440a6997..38f29861f684aced33483508ef557f1db60ee21d 100644
--- a/ecrire/balise/url_logout.php
+++ b/ecrire/balise/url_logout.php
@@ -27,6 +27,6 @@ function balise_URL_LOGOUT_dyn($cible) {
 
 	if (!$GLOBALS['visiteur_session']['login']) return '';
 
-	return generer_url_action('logout',"logout=public&url=" . rawurlencode($cible ? $cible : self('&')));
+	return generer_url_action('logout',"logout=public&url=" . rawurlencode($cible ? $cible : self('&')));
 }
 ?>
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 20b3d56e2d0ec8ff89ba4deb84f54c26b21616e8..0bec2213739da6cdda271adcadc21e7ee524ad4d 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -924,7 +924,7 @@ function generer_url_action($script, $args="", $no_entities=false ,$rel = false)
 
 	$url = './';
 	$url = parametre_url($url,'action',$script);
-	if ($args) $url .= '&'.$args;
+	if ($args) $url .= quote_amp('&'.$args);
 	if ($redirect = parametre_url($url,'redirect')){
 		if (test_espace_prive() 
 		  AND substr($redirect,0,strlen(_DIR_RESTREINT_ABS))==_DIR_RESTREINT_ABS)