diff --git a/dist/site.html b/dist/site.html
index e0afbc564becbaff2c08cb09d214c6cca18409c9..df8c7d6bf0631d1dab50ef364d0b9a27b2030797 100644
--- a/dist/site.html
+++ b/dist/site.html
@@ -56,7 +56,8 @@
 							<:par_auteur:> (#LESAUTEURS)]
 							[&mdash; <em>(#TAGS|afficher_tags)</em>]
 						</small>
-						[<div class="texte">(#DESCRIPTIF)</div>]
+						[<div class="texte">(#DESCRIPTIF|image_reduire{300})
+						<br class="nettoyeur" /></div>]
 					</li>
 					</BOUCLE_articles>
 				</ul>
diff --git a/ecrire/inc/distant.php b/ecrire/inc/distant.php
index 76ceb7f7a6087f3e7fbabaca17d55a0d650e04e0..d0e2b5f887c8b78a6db639ddaef7937a2ee8a639 100644
--- a/ecrire/inc/distant.php
+++ b/ecrire/inc/distant.php
@@ -19,7 +19,6 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 // mode = 'force' - charger toujours (mettre a jour)
 //
 function copie_locale($source, $mode='auto') {
-
 	// Si copie_locale() est appele depuis l'espace prive
 	if (!_DIR_RESTREINT
 	AND strpos(_DIR_RACINE . $source, _DIR_IMG) === 0)
@@ -31,6 +30,11 @@ function copie_locale($source, $mode='auto') {
 	if ($mode == 'test')
 		return @file_exists(_DIR_RACINE.$local) ? $local : '';
 
+	// si $local = '' c'est un fichier refuse par fichier_copie_locale(),
+	// par exemple un fichier qui ne figure pas dans nos documents ;
+	// dans ce cas on n'essaie pas de le telecharger pour ensuite echouer
+	if (!$local) return false;
+
 	// sinon voir si on doit le telecharger
 	if (($source != $local) AND (preg_match(',^\w+://,', $source))) {
 		if (($mode=='auto' AND !@file_exists($local))
diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index f9df5690309e10eb3fa359901ac0e49fd95aa803..38b8e5bc94976cf6f7b0be50414f082da7e6cd6b 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -830,7 +830,7 @@ function reduire_image($texte, $taille = -1, $taille_y = -1) {
 			}
 		}
 	}
-	
+
 	return $texte;
 }
 // Renommer en "image_reduire", pour que toutes fonctions graphiques
diff --git a/ecrire/inc/logos.php b/ecrire/inc/logos.php
index 318818830616ea7e76e2e39691573d5b9c920b66..6dd3d0ce74a4f51faf710d08a935b10ca9d1739b 100644
--- a/ecrire/inc/logos.php
+++ b/ecrire/inc/logos.php
@@ -502,11 +502,25 @@ function reduire_image_logo($img, $taille = -1, $taille_y = -1) {
 		$logo = $img;
 	if (!$logo) return '';
 
-	// Si c'est une image distante, la recuperer (si possible)
+	// Si c'est une image distante, la recuperer
 	include_spip('inc/distant');
+
 	if (!$local = copie_locale($logo)) {
 		spip_log("pas de version locale de $logo");
-		return $img;
+		// on peut resizer en mode html si on dispose des elements
+		if ($srcw = extraire_attribut($img, 'width')
+		AND $srch = extraire_attribut($img, 'height')) {
+			list($w,$h) = image_ratio($srcw, $srch, $taille, $taille_y);
+			$img = inserer_attribut(
+				inserer_attribut($img, 'width', $w),
+				'height', $h);
+			return $img;
+		}
+
+		// la on n'a pas d'infos sur l'image source... on refile le truc a css
+		// sous la forme style='max-width: NNpx;'
+		return inserer_attribut($img, 'style',
+			"max-width: ${taille}px; max-height: ${taille_y}px");
 	}
 	$logo = $local;
 
diff --git a/ecrire/inc/sites_voir.php b/ecrire/inc/sites_voir.php
index 347c292490d1e7518bb660ce8fe884ca28404674..bf0f441647d811f5aa97be24c13e97af702100ff 100644
--- a/ecrire/inc/sites_voir.php
+++ b/ecrire/inc/sites_voir.php
@@ -171,8 +171,17 @@ function afficher_syndic_articles_boucle($row, &$my_sites, $bof, $redirect)
 		$s .= ' '.$e;
 
 	// descriptif
-	if (strlen($descriptif) > 0)
-		$s .= "<div class='arial1'>".safehtml($descriptif)."</div>";
+	if (strlen($descriptif) > 0) {
+		// couper un texte vraiment tres long
+		if (strlen($descriptif) > 10000)
+			$descriptif = safehtml(spip_substr($descriptif, 0, 6000)).' (...)';
+		else
+			$descriptif = safehtml($descriptif);
+		$s .= '<div class="arial1">'
+			# 385px = largeur de la colonne ou s'affiche le texte
+			. image_reduire($descriptif, 385, 550)
+			. '</div>';
+	}
 
 	// tags
 	if ($tags = afficher_tags($row['tags']))