diff --git a/inc-balises.php3 b/inc-balises.php3
index 57b41c908c646d4a0d970c09d189f669369e7e61..d54a7663d294a61bbd198358966504ad0dc18585 100644
--- a/inc-balises.php3
+++ b/inc-balises.php3
@@ -259,6 +259,13 @@ function balise_NOTES_dist($p) {
 	return $p;
 }
 
+// Qu'afficher en cas d'erreur 404 ?
+function balise_ERREUR_AUCUN_dist($p) {
+	$p->code = '$Pile[0]["erreur_aucun"]';
+	$p->statut = 'php';
+	return $p;
+}
+
 function balise_RECHERCHE_dist($p) {
 	$p->code = 'htmlspecialchars($GLOBALS["recherche"])';
 	$p->statut = 'php';
diff --git a/inc-public-global.php3 b/inc-public-global.php3
index 23b7b4c6d2e7011491dc205ab5229cec02bbc9f3..552b7a11e89edacd20db35b4ce4657416c9f3080 100644
--- a/inc-public-global.php3
+++ b/inc-public-global.php3
@@ -418,4 +418,23 @@ function inclure_page_lang($fond, $delais, $contexte_inclus) {
 	if ($page['lang_select'])
 		lang_dselect();
 }
+
+
+function message_erreur_404 () {
+	if ($GLOBALS['id_article'])
+		$erreur = 'aucun_article';
+	else if ($GLOBALS['id_rubrique'])
+		$erreur = 'aucune_rubrique';
+	else if ($GLOBALS['id_breve'])
+		$erreur = 'aucune_breve';
+	else if ($GLOBALS['id_auteur'])
+		$erreur = 'aucun_auteur';
+	else if ($GLOBALS['id_syndic'])
+		$erreur = 'aucun_site';
+	else
+		$erreur = '';
+
+	return _T("public:".$erreur);
+}
+
 ?>
diff --git a/inc-public.php3 b/inc-public.php3
index 9d1d794e8e8b4b37d6601629a34d8abdee196df0..99725bc550d6708bf4cf972bdb98fb57435948dc 100644
--- a/inc-public.php3
+++ b/inc-public.php3
@@ -14,7 +14,10 @@ else {
 	echo $page;
 
 	// Si le 404 a ete renvoye (page vide), donner un message approprie
-	if ($http_status == 404) include(find_in_path('404.php3'));
+	if ($http_status == 404) {
+		$contexte_inclus = array('erreur_aucun' => message_erreur_404());
+		include(find_in_path('404.php3'));
+	}
 
 	terminer_public_global();
 }