diff --git a/ecrire/exec_accueil.php b/ecrire/exec_accueil.php
index 802270c48e6b54ceefc89883d19154f772017243..f53f175a05c21e1b9c4f525aebbae5f7b0ca8ecd 100644
--- a/ecrire/exec_accueil.php
+++ b/ecrire/exec_accueil.php
@@ -14,7 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_ecrire("inc_presentation");
 include_ecrire("inc_texte");
-include_ecrire("inc_urls");
+charger_generer_url();
 include_ecrire("inc_rubriques");
 
 function encours_accueil($vos_articles)
diff --git a/ecrire/exec_articles_page.php b/ecrire/exec_articles_page.php
index 71f8dcddcf3bfac5a1b4f88c42ef649dcc2dd271..885188ad0655e1408661f4221f2f8d7d257e060b 100644
--- a/ecrire/exec_articles_page.php
+++ b/ecrire/exec_articles_page.php
@@ -14,7 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_ecrire("inc_presentation");
 include_ecrire("inc_texte");
-include_ecrire("inc_urls");
+charger_generer_url();
 include_ecrire("inc_rubriques");
 
 function articles_page_dist()
diff --git a/ecrire/exec_breves.php b/ecrire/exec_breves.php
index 44015e51939119286a2474387b5517c1ff031f1c..4d5abda4a78e21a5b2cd0fa46a0b7a3e855cbab1 100644
--- a/ecrire/exec_breves.php
+++ b/ecrire/exec_breves.php
@@ -14,7 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_ecrire("inc_presentation");
 include_ecrire("inc_texte");
-include_ecrire("inc_urls");
+charger_generer_url();
 include_ecrire("inc_rubriques");
 
 function enfant_breves($leparent){
diff --git a/ecrire/exec_controle_forum.php b/ecrire/exec_controle_forum.php
index 058d64cf8003d5be568da72d56b39f40299b4a85..956da2c4d2557a9e79d0810fd7beb2b1a9d09adc 100644
--- a/ecrire/exec_controle_forum.php
+++ b/ecrire/exec_controle_forum.php
@@ -13,7 +13,7 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_ecrire("inc_presentation");
-include_ecrire("inc_urls");
+charger_generer_url();
 include_ecrire('inc_forum');
 
 function forum_parent($id_forum) {
diff --git a/ecrire/exec_forum_admin.php b/ecrire/exec_forum_admin.php
index c2a7950aaa7918310abdd30b7e9e7b4e56549953..28407acc8ec506d99be9f89482ce46942e79d8de 100644
--- a/ecrire/exec_forum_admin.php
+++ b/ecrire/exec_forum_admin.php
@@ -14,7 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_ecrire("inc_presentation");
 include_ecrire("inc_texte");
-include_ecrire("inc_urls");
+charger_generer_url();
 include_ecrire("inc_rubriques");
 
 function liste_numeros_forum($urlforum, $debut, $total)
diff --git a/ecrire/exec_message.php b/ecrire/exec_message.php
index 39339625ac18bb888fbf895b7f4341bc43a925b7..02a3a0b4172b534d8879082ab15aae1fea9c0072 100644
--- a/ecrire/exec_message.php
+++ b/ecrire/exec_message.php
@@ -13,7 +13,7 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_ecrire("inc_presentation");
-include_ecrire("inc_urls");
+charger_generer_url();
 include_ecrire("inc_rubriques");
 include_ecrire ("inc_mots");
 
diff --git a/ecrire/exec_naviguer.php b/ecrire/exec_naviguer.php
index 2a28b5447b063d0cdcbf85a14f89152c67cd2c4c..4db4ad745b26a2728d0640b3697cab398d12f02a 100644
--- a/ecrire/exec_naviguer.php
+++ b/ecrire/exec_naviguer.php
@@ -14,7 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_ecrire("inc_presentation");
 include_ecrire("inc_texte");
-include_ecrire("inc_urls");
+charger_generer_url();
 include_ecrire("inc_rubriques");
 include_ecrire('inc_forum');
 include_ecrire("inc_logos");
diff --git a/ecrire/exec_statistiques_repartition.php b/ecrire/exec_statistiques_repartition.php
index e3e5241e4f71ad05b7b71696c0f2ccbc77e364e5..75be48a599574c5bd41d3d6673f26934c48352d4 100644
--- a/ecrire/exec_statistiques_repartition.php
+++ b/ecrire/exec_statistiques_repartition.php
@@ -14,7 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_ecrire("inc_presentation");
 include_ecrire("inc_texte");
-include_ecrire("inc_urls");
+charger_generer_url();
 include_ecrire("inc_rubriques");
 
 function enfants($id_parent, $critere){
diff --git a/ecrire/exec_synchro.php b/ecrire/exec_synchro.php
index 0ed9a58207439a713e08827b40b01ac6b8276023..e3013e65dd005c31fe07aacc93a9dcbf2bfbe0a5 100644
--- a/ecrire/exec_synchro.php
+++ b/ecrire/exec_synchro.php
@@ -13,7 +13,7 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_ecrire("inc_presentation");
-include_ecrire("inc_urls");
+charger_generer_url();
 include_ecrire("inc_acces"); // pour low_sec (iCal)
 
 function afficher_liens_calendrier($lien, $icone, $texte) {
diff --git a/ecrire/inc_signatures.php b/ecrire/inc_signatures.php
index 7351f7ca2a56a18a9091e5a8166c157560bfe9c1..41447c8505ed0020777c1a360111ba305c938cc4 100644
--- a/ecrire/inc_signatures.php
+++ b/ecrire/inc_signatures.php
@@ -13,7 +13,7 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-include_ecrire('inc_urls');
+charger_generer_url();
 
 function controle_signatures($script, $id, $debut, $where, $order, $limit=10) {
 	global $couleur_foncee;
diff --git a/ecrire/inc_utils.php b/ecrire/inc_utils.php
index d7b602000ab090ce333f9d8fab49716df14624bf..4d0b480aa8476047579e2e62ce48e9bca27fde45 100644
--- a/ecrire/inc_utils.php
+++ b/ecrire/inc_utils.php
@@ -21,18 +21,27 @@ $included_files = array();
 function include_local($file, $silence=false) {
 	$nom = preg_replace("/\.php[3]?$/",'', $file);
 #	spip_log("'$nom' '$file'");
-	if (@$GLOBALS['included_files'][$nom]++) return;
-	if (is_readable($f = $nom . '.php'))
-	  include($f);
-	else if (is_readable($f = $nom . _EXTENSION_PHP))
-	  include($f);
-	else if (!$silence) spip_log($file . " illisible");
+	if (@$GLOBALS['included_files'][$nom]++)
+		return true;
+	if (is_readable($f = $nom . '.php')) {
+		include($f);
+		return true;
+	}
+	else if (is_readable($f = $nom . _EXTENSION_PHP)) {
+		include($f);
+		return true;
+	}
+	else {
+		if (!$silence)
+			spip_log($file . " illisible");
+		return false;
+	}
 }
 
-function include_ecrire($file) {
+function include_ecrire($file, $silence=false) {
 # Hack pour etre compatible avec les mes_options qui appellent cette fonction
 	define('_DIR_INCLUDE', _DIR_RESTREINT);
-	include_local(_DIR_INCLUDE . $file);
+	return include_local(_DIR_INCLUDE . $file, $silence);
 }
 
 // charge un fichier perso ou, a defaut, standard
@@ -633,15 +642,17 @@ function charger_generer_url() {
 
 	if ($ok++) return; # fichier deja charge
 
-	// espace prive ?
+	// espace prive
 	if (!_DIR_RESTREINT)
 		include_ecrire('inc_urls');
-	// fichier inc-urls ?
-	else if (@file_exists("inc-urls" . _EXTENSION_PHP))
-		include_local("inc-urls");
-	// fichier inc-urls-xxx ?
-	else
-		include_local("inc-urls-".$GLOBALS['type_urls']);
+
+	// espace public
+	else {
+		// fichier inc-urls ? (old style)
+		include_local(_DIR_RACINE."inc-urls")
+		// sinon fichier inc-urls-xxx
+		OR include_local(_DIR_RACINE."inc-urls-".$GLOBALS['type_urls']);
+	}
 }