diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index ac64ab17d81e59833c146a6737ad8facfddfefd7..fb8309844b2bed449c2862391ba84e1ef4e69bfe 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -1789,17 +1789,18 @@ function charger_fonction_url(string $quoi, string $type = '') {
 		return '';
 	}
 
-	if (!$type) {
-		$type = $GLOBALS['type_urls'] ?? $GLOBALS['meta']['type_urls'] ?? 'page'; // sinon type "page" par défaut
+	$url_type = $type;
+	if (!$url_type) {
+		$url_type = $GLOBALS['type_urls'] ?? $GLOBALS['meta']['type_urls'] ?? 'page'; // sinon type "page" par défaut
 	}
 
 	// inclure le module d'url
-	include_spip('urls/' . $type);
+	include_spip('urls/' . $url_type);
 
 	switch ($quoi) {
 		case 'page':
 			if (
-				 function_exists($f = "urls_{$type}_generer_url_page")
+				 function_exists($f = "urls_{$url_type}_generer_url_page")
 				or function_exists($f .= '_dist')
 				// ou une fonction custom utilisateur independante du type d'url
 				or function_exists($f = 'generer_url_page')
@@ -1814,18 +1815,18 @@ function charger_fonction_url(string $quoi, string $type = '') {
 		default:
 			$fquoi = ($quoi === 'objet' ? 'generer_url_objet' : 'decoder_url');
 			if (
-				function_exists($f = "urls_{$type}_{$fquoi}")
+				function_exists($f = "urls_{$url_type}_{$fquoi}")
 				or function_exists($f .= '_dist')
 			) {
 				return $f;
 			}
 			// est-ce qu'on a une ancienne fonction urls_xxx_dist() ?
 			// c'est un ancien module d'url, on appelle l'ancienne fonction qui fait tout
-			if ($f = charger_fonction($type, 'urls', true)) {
+			if ($f = charger_fonction($url_type, 'urls', true)) {
 				return $f;
 			}
-			// sinon on se rabat sur les urls page
-			if ($type !== 'page') {
+			// sinon on se rabat sur les urls page si ce n'est pas un type demande explicitement
+			if (!$type and $url_type !== 'page'){
 				return charger_fonction_url($quoi, 'page');
 			}
 			return '';