diff --git a/ecrire/inc_utils.php b/ecrire/inc_utils.php
index 38898d1d65e27ad9b882000419f12899641b02ce..02da51b9211ba6e8fba0e161e495b1cb50365bba 100644
--- a/ecrire/inc_utils.php
+++ b/ecrire/inc_utils.php
@@ -559,12 +559,14 @@ function generer_url_ecrire($script, $args="", $retour="", $retour_args="") {
 			  (!$retour_args ? "" : ('?' . $retour_args))));
 }
 
-// cas particulier des scripts publics appeles a partir de l'espace prive
+// scripts publics appeles a partir de l'espace prive ou de l'exterieur (mail)
 // il faudra substituer a l'appel ci-dessous la definition ci-dessus
 // lorsque celle-ci deviendra generique
 
 function generer_url_public($script, $args="", $retour="", $retour_args="") {
-  return generer_url_ecrire("../$script", $args, $retour, $retour_args);
+	$site = $GLOBALS['meta']["adresse_site"];
+	$site .= (($site && $site[strlen($site)-1] <> '/') ?'/':'') . $script;
+	return generer_url_ecrire($site, $args, $retour, $retour_args);
 }
 
 ?>