diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 4ae0cd32c8f037b698f4aa9cdcd26d9da792c48d..f65eeddf4e7cb4d89e71d254236b4d1fd0f612a5 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -775,7 +775,14 @@ function generer_url_entite($id='', $entite='', $args='', $ancre='', $public=NUL
 	if (!function_exists($f = 'generer_url_' . $entite)) {
 		if (!function_exists($f .= '_dist')) $f = '';
 	}
-	if ($f) return $f($id, $args, $ancre);
+	if ($f) {
+		$url = $f($id, $args, $ancre);
+		if (strlen($args))
+			$url .= strstr('?', $url)
+				? '&'.$args
+				: '?'.$args;
+		return $url;
+	}
 	// On a ete gentil mais la ....
 	spip_log("generer_url_entite: entite $entite ($f) inconnue $type");
 	return '';