diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php
index b047c11863dc1230024e832c42e1ce1341d81af9..bb0ad6079c413fe05964d75bb0032c6d4add7ff4 100644
--- a/ecrire/inc/texte.php
+++ b/ecrire/inc/texte.php
@@ -615,11 +615,10 @@ function calculer_url ($lien, $texte='', $pour='url', $connect='') {
 		@list($f,,$id,,$param,,$ancre) = $match;
 		$res = '';
 		if ($connect) {
-			include_spip('inc/urls');
-			$g = 'generer_url_ecrire_' . $f;
-			$param .= ($param ? '&' : '') . "connect=" . $connect;
-			if (function_exists($g))
-				$res = $g($id, $param, $ancre, 'publie', $connect);
+			$id_type = ($f != 'site') ? "id_$f" : 'id_syndic';
+			$res = get_spip_script('./')
+			. "?page=$f&$id_type=$id&connect=$connect"
+			. (!$params ? '' : "&$param");
 		} else {
 			charger_generer_url();
 			$g = 'generer_url_' . $f;
diff --git a/ecrire/public/references.php b/ecrire/public/references.php
index 490d7c9bb188eaa5e43a9141fdc6cffb94673a6c..d5614b76bbbee45c1365a64ea2bc9db04ce582b9 100644
--- a/ecrire/public/references.php
+++ b/ecrire/public/references.php
@@ -260,7 +260,7 @@ print $p->code."\n<hr/>\n";
 // http://doc.spip.org/@calculer_balise_dynamique
 function calculer_balise_dynamique($p, $nom, $l) {
 
-	balise_distante_interdite($p);
+	if (!balise_distante_interdite($p)) return $p;
 	$param = "";
 	if ($a = $p->param) {
 		$c = array_shift($a);
@@ -307,8 +307,10 @@ function collecter_balise_dynamique($l, &$p, $nom) {
 function balise_distante_interdite($p) {
 	$nom = $p->id_boucle;
 	if ($nom AND $p->boucles[$nom]->sql_serveur) {
-		erreur_squelette($p->nom_champ .' '._T('zbug_distant_interdit'), $nom);
+		spip__log( $nom .':' . $p->nom_champ .' '._T('zbug_distant_interdit'));
+		return false;
 	}
+	return true;
 }