diff --git a/ecrire/inc/autoriser.php b/ecrire/inc/autoriser.php
index aab3333ae16827d6bf5094b6468c0f22a2ad4114..5f5aabce1dc74ca51271ce1d9589f92fad829fc7 100644
--- a/ecrire/inc/autoriser.php
+++ b/ecrire/inc/autoriser.php
@@ -519,6 +519,9 @@ function autoriser_chargerftp_dist($faire, $type, $id, $qui, $opt) {
 //
 // http://doc.spip.org/@autoriser_document_voir_dist
 function autoriser_document_voir_dist($faire, $type, $id, $qui, $opt) {
+
+	if (($id = intval($id)) <= 0) return false;
+
 	if ($GLOBALS['meta']["creer_htaccess"] != 'oui')
 		return true;
 
diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php
index 1287076de8e6079d91d1aaf619c15a353da62288..3fcaacd004db0a5f806d567aefb84514e94dc384 100644
--- a/ecrire/inc/documents.php
+++ b/ecrire/inc/documents.php
@@ -14,8 +14,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/actions'); // *action_auteur et determine_upload
 include_spip('inc/date');
-include_spip('base/abstract_sql');
-
 
 // donne le chemin du fichier relatif a _DIR_IMG
 // pour stockage 'tel quel' dans la base de donnees
@@ -55,24 +53,27 @@ function contenu_document($id_document)
 
 // http://doc.spip.org/@generer_url_document_dist
 function generer_url_document_dist($id_document, $args='', $ancre='') {
-	if (intval($id_document) <= 0)
-		return '';
+
+	include_spip('inc/autoriser');
+	if (!autoriser('voir', 'document', $id_document)) return '';
+
 	$row = sql_fetsel("fichier,distant", "spip_documents", "id_document=".sql_quote($id_document));
+
 	if (!$row) return '';
-	// Cette variable de configuration peut etre posee par un plugin
-	// par exemple acces_restreint
-	if ($GLOBALS['meta']["creer_htaccess"] == 'oui'
-	AND $row['distant'] != 'oui') {
-		include_spip('inc/securiser_action');
-		$args .= ($args ? "&" : '')
+
+	$f = $row['fichier'];
+
+	if ($row['distant'] == 'oui') return get_spip_doc($f);
+
+	include_spip('inc/securiser_action');
+
+	return generer_url_action('acceder_document', 
+		$args . ($args ? "&" : '')
 			. 'arg='.$id_document
 			. ($ancre ? "&ancre=$ancre" : '')
-			. '&cle=' . calculer_cle_action($id_document.','.$row['fichier'])
-			. '&file=' . rawurlencode($row['fichier'])
-			;
-		return generer_url_action('acceder_document', $args);
-	} else
-		return get_spip_doc($row['fichier']);
+			. '&cle=' . calculer_cle_action($id_document.','.$f)
+			. '&file=' . rawurlencode($f)
+				  );
 }
 
 //