diff --git a/ecrire/action/supprimer.php b/ecrire/action/supprimer.php
index de7ad5d9b92e74c2fcf05432a17c1c4a1520ae70..c3b19968ac3f1e6afb782ea83d32eaa12a336a67 100644
--- a/ecrire/action/supprimer.php
+++ b/ecrire/action/supprimer.php
@@ -72,7 +72,6 @@ function action_supprimer_rubrique($id_rubrique)
 	// invalider les caches marques de cette rubrique
 	include_spip('inc/invalideur');
 	suivre_invalideur("id='id_rubrique/$id_rubrique'");
-
 }
 
 // http://doc.spip.org/@supprimer_document_et_vignette
@@ -80,21 +79,18 @@ function supprimer_document_et_vignette($arg)
 {
 	$result = spip_query("SELECT id_vignette, fichier FROM spip_documents WHERE id_document=$arg");
 	if ($row = spip_fetch_array($result)) {
-		$fichier = $row['fichier'];
-		$id_vignette = $row['id_vignette'];
+		@unlink(get_spip_doc($row['fichier']));
 		spip_query("DELETE FROM spip_documents WHERE id_document=$arg");
 		spip_query("UPDATE spip_documents SET id_vignette=0 WHERE id_vignette=$arg");
 		spip_query("DELETE FROM spip_documents_articles WHERE id_document=$arg");
 		spip_query("DELETE FROM spip_documents_rubriques WHERE id_document=$arg");
 		spip_query("DELETE FROM spip_documents_breves WHERE id_document=$arg");
-		@unlink($fichier);
-
+		$id_vignette = $row['id_vignette'];
 		if ($id_vignette > 0) {
-			$result = spip_query("SELECT id_vignette, fichier FROM spip_documents	WHERE id_document=$id_vignette");
+			$result = spip_query("SELECT fichier FROM spip_documents	WHERE id_document=$id_vignette");
 
 			if ($row = spip_fetch_array($result)) {
-				$fichier = $row['fichier'];
-				@unlink($fichier);
+				@unlink(get_spip_doc($row['fichier']));
 			}
 			spip_query("DELETE FROM spip_documents	WHERE id_document=$id_vignette");
 			spip_query("DELETE FROM spip_documents_articles	WHERE id_document=$id_vignette");
diff --git a/ecrire/action/tourner.php b/ecrire/action/tourner.php
index 1febc33ab7b635a8fca1eeab7bd0f8eebc6c234c..c68076978b3237088c23f89a9eadde24771512e0 100644
--- a/ecrire/action/tourner.php
+++ b/ecrire/action/tourner.php
@@ -38,7 +38,7 @@ function action_tourner_post($r)
 
 	// Fichier destination : on essaie toujours de repartir de l'original
 	$var_rot = $r[2];
-	$src = copie_locale($row['fichier']);
+	$src = copie_locale(get_spip_doc($row['fichier']));
 	if (preg_match(',^(.*)-r(90|180|270)\.([^.]+)$,', $src, $match)) {
 		$effacer = $src;
 		$src = $match[1].'.'.$match[3];
@@ -92,7 +92,8 @@ function action_tourner_post($r)
 
 	// succes !
 	if ($largeur>0 AND $hauteur>0) {
-		spip_query("UPDATE spip_documents SET fichier='".addslashes($dest)."', largeur=$largeur, hauteur=$hauteur WHERE id_document=$arg");
+		$f = "'" . addslashes(set_spip_doc($dest)) . "'";
+		spip_query("UPDATE spip_documents SET fichier=$f, largeur=$largeur, hauteur=$hauteur WHERE id_document=$arg");
 		if ($effacer) {
 			spip_log("j'efface $effacer");
 			@unlink($effacer);
diff --git a/ecrire/inc/ajouter_documents.php b/ecrire/inc/ajouter_documents.php
index 988aeeebf874ef7a5f9403ce85cbd82e216ea20f..470619e1c64902ead4702eddb6445d41e2ed3c73 100644
--- a/ecrire/inc/ajouter_documents.php
+++ b/ecrire/inc/ajouter_documents.php
@@ -57,7 +57,7 @@ function inc_ajouter_documents_dist ($source, $nom_envoye, $type_lien, $id_lien,
 			spip_log("Echec du lien vers le document $source, abandon");
 			return;
 		}
-	} else {$distant = 'non';
+	} else  {$distant = 'non';
 
 		// tester le type de document :
 		// - interdit a l'upload ?
@@ -229,8 +229,13 @@ function inc_ajouter_documents_dist ($source, $nom_envoye, $type_lien, $id_lien,
 		$update = "mode='$mode', ";
 	}
 
+	// Pour les fichiers distants remettre l'URL de base
+	$path =  ($distant == 'oui')
+	  ? _q($source)
+	  : ("'" . addslashes(set_spip_doc($fichier)) . "'");
+
 	// Mise a jour des donnees
-	spip_query("UPDATE spip_documents SET $update taille='$taille', largeur='$largeur', hauteur='$hauteur', fichier='$fichier' WHERE id_document=$id_document");
+	spip_query("UPDATE spip_documents SET $update taille='$taille', largeur='$largeur', hauteur='$hauteur', fichier=$path WHERE id_document=$id_document");
 
 	if ($id_document_lie) {
 		spip_query("UPDATE spip_documents SET id_vignette=$id_document	WHERE id_document=$id_document_lie");
@@ -240,10 +245,6 @@ function inc_ajouter_documents_dist ($source, $nom_envoye, $type_lien, $id_lien,
 	else
 		$documents_actifs[] = $id_document; 
 
-	// Pour les fichiers distants remettre l'URL de base
-	if ($distant == 'oui')
-		spip_query("UPDATE spip_documents SET fichier=" . _q($source) . " WHERE id_document = $id_document");
-
 	// Demander l'indexation du document
 	include_spip('inc/indexation');
 	marquer_indexer('spip_documents', $id_document);
@@ -253,7 +254,6 @@ function inc_ajouter_documents_dist ($source, $nom_envoye, $type_lien, $id_lien,
 
 
 
-
 // http://doc.spip.org/@verifier_compactes
 function verifier_compactes($zip) {
 	if (!$list = $zip->listContent()) return array();
diff --git a/ecrire/inc/distant.php b/ecrire/inc/distant.php
index 72fa921fe5d394e336d9efd077527fe48787a54d..24fad465c6e7055a6626010a714eea774ad72d03 100644
--- a/ecrire/inc/distant.php
+++ b/ecrire/inc/distant.php
@@ -40,19 +40,16 @@ function copie_locale($source, $mode='auto') {
 		if (($mode=='auto' AND !@file_exists(_DIR_RACINE.$local))
 		OR $mode=='force') {
 			$contenu = recuperer_page($source);
-			if ($contenu) {
-				ecrire_fichier(_DIR_RACINE.$local, $contenu);
-
-				// signaler au moteur de recherche qu'il peut reindexer ce doc
-				$id_document = spip_fetch_array(spip_query("SELECT id_document FROM spip_documents WHERE fichier=" . _q($source)));
-				$id_document = $id_document['id_document'];
-				if ($id_document) {
-					include_spip('inc/indexation');
-					marquer_indexer('spip_documents', $id_document);
-				}
+			if (!$contenu) return false;
+			ecrire_fichier(_DIR_RACINE.$local, $contenu);
+
+			// signaler au moteur de recherche qu'il peut reindexer ce doc
+			$id_document = spip_fetch_array(spip_query("SELECT id_document FROM spip_documents WHERE fichier=" . _q($source)));
+			$id_document = $id_document['id_document'];
+			if ($id_document) {
+				include_spip('inc/indexation');
+				marquer_indexer('spip_documents', $id_document);
 			}
-			else
-				return false;
 		}
 	}
 
diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php
index 032948dae4d54247543ac336e95ed42ff6670d2f..9c6a82c09f4dcab2440621361284550788c9f229 100644
--- a/ecrire/inc/documents.php
+++ b/ecrire/inc/documents.php
@@ -62,8 +62,7 @@ function vignette_par_defaut($ext, $size=true, $loop = true) {
 // http://doc.spip.org/@image_pattern
 function image_pattern($vignette) {
 	return "<img src='"
-			. _DIR_RACINE
-			. $vignette['fichier']."'
+			. get_spip_doc($vignette['fichier'])."'
 			alt=' '
 			width='".$vignette['largeur']."'
 			height='".$vignette['hauteur']."' />";
@@ -84,7 +83,7 @@ function document_et_vignette($document, $url, $portfolio=false) {
 				$image = image_pattern($vignette);
 			} else {
 				include_spip('inc/filtres');
-				$image = filtrer('image_reduire', _DIR_RACINE .$vignette['fichier'], 120, 110, false, true);
+				$image = filtrer('image_reduire', get_spip_doc($vignette['fichier']), 120, 110, false, true);
 			}
 	}
 	else if (strpos($GLOBALS['meta']['formats_graphiques'], $extension)!==false
@@ -93,7 +92,7 @@ function document_et_vignette($document, $url, $portfolio=false) {
 		include_spip('inc/filtres');
 
 		if ($document['distant'] != 'oui')
-			$image = _DIR_RACINE.$document['fichier'];
+			$image = get_spip_doc($document['fichier']);
 
 		if ($portfolio) {
 			$image = filtrer('image_reduire',	$image,	110, 120, false, true);
@@ -257,7 +256,7 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals
 
 	$cadre = strlen($titre) ? $titre : basename($document['fichier']);
 
-	$result = spip_query("SELECT * FROM spip_types_documents WHERE id_type=$id_type");
+	$result = spip_query("SELECT titre,inclus,extension FROM spip_types_documents WHERE id_type=$id_type");
 	if ($letype = @spip_fetch_array($result)) {
 		$type_extension = $letype['extension'];
 		$type_inclus = $letype['inclus'];
diff --git a/ecrire/inc/revisions.php b/ecrire/inc/revisions.php
index c9b1a2e83d8a879e591b8edda7b72a16c5261ea5..902892ec2074f19548e75c69b8442db4f4eebaa9 100644
--- a/ecrire/inc/revisions.php
+++ b/ecrire/inc/revisions.php
@@ -77,7 +77,7 @@ function ajouter_fragments($id_article, $id_version, $fragments) {
 		if ($row = spip_fetch_array($result)) {
 			$fragment = $row['fragment'];
 			$version_min = $row['version_min'];
-			if ($row['compress'] > 0) $fragment = gzuncompress($fragment);
+			if ($row['compress'] > 0) $fragment = @gzuncompress($fragment);
 			$fragment = unserialize($fragment);
 			if (is_array($fragment)) {
 				unset($fragment[$id_version]);
diff --git a/ecrire/inc/tourner.php b/ecrire/inc/tourner.php
index 246501495a19cda80b44d7739256ad3fd5e56c5a..2584967750f7cb25c5d6d2cf95910ec3394c78de 100644
--- a/ecrire/inc/tourner.php
+++ b/ecrire/inc/tourner.php
@@ -47,13 +47,13 @@ function inc_tourner_dist($id_document, $document, $script, $flag, $type)
 	// Indiquer les documents manquants avec un panneau de warning
 
 	if ($document['distant'] != 'oui') {
-		if (!@file_exists(_DIR_RACINE.$document['fichier'])) {
+		if (!@file_exists(get_spip_doc($document['fichier']))){
 			$c = _T('fichier_introuvable',
 					array('fichier'=>basename($document['fichier'])));
 			$res = "<img src='" . _DIR_IMG_PACK . "warning-24.gif'"
 				."\n\tstyle='float: right;'\n\talt=\"$c\"\n\ttitle=\"$c\" />";
-		} else 	if ($flag)
-			$res = boutons_rotateurs($document, $type, $id, $id_document,$script,  $id_vignette);
+		} else 	if ($flag AND !$id_vignette) 
+			$res = boutons_rotateurs($document, $type, $id, $id_document,$script);
 
 		$boite = '';
 
@@ -76,7 +76,7 @@ function inc_tourner_dist($id_document, $document, $script, $flag, $type)
 }
 
 // http://doc.spip.org/@boutons_rotateurs
-function boutons_rotateurs($document, $type, $id, $id_document, $script, $id_vignette) {
+function boutons_rotateurs($document, $type, $id, $id_document, $script) {
 	global $spip_lang_right;
 	static $ftype = array(1 => 'jpg', 2 => 'png', 3 => 'gif');
 
@@ -86,14 +86,14 @@ function boutons_rotateurs($document, $type, $id, $id_document, $script, $id_vig
 	// si c'est une image, qu'on sait la faire tourner, qu'elle
 	// n'est pas distante, qu'elle est bien presente dans IMG/
 	// qu'elle n'a pas de vignette perso ; et qu'on a la bibli !
-	if ($document['distant']!='oui' AND !$id_vignette
+	if ($document['distant']!='oui' 
 	AND isset($ftype[$document['id_type']])
 	AND (strpos($GLOBALS['meta']['formats_graphiques'], $ftype[$document['id_type']])!==false)
 	AND ($process == 'imagick'
 		OR $process == 'gd2'
 		OR $process == 'convert'
 		OR $process == 'netpbm')
-	AND @file_exists(_DIR_RACINE.$document['fichier'])
+	AND @file_exists(get_spip_doc($document['fichier']))
 	) {
 
 	  return "\n<div class='verdana1' style='float: $spip_lang_right; text-align: $spip_lang_right;'>" .
diff --git a/ecrire/inc/urls.php b/ecrire/inc/urls.php
index f736670e32177f2ea020908ba60c92b83f5b1996..8397e4a7cc08cf9f58fc5154bf17e20d2c05a71d 100644
--- a/ecrire/inc/urls.php
+++ b/ecrire/inc/urls.php
@@ -85,7 +85,7 @@ function generer_url_ecrire_document($id_document, $statut='') {
 			return $row['fichier'];
 		} else {
 			if (($GLOBALS['meta']["creer_htaccess"]) != 'oui')
-				return _DIR_RACINE . ($row['fichier']);
+				return get_spip_doc($row['fichier']);
 			else 	return generer_url_action('autoriser', "arg=$id_document");
 		}
 	}
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index df732aff94c4a6184a51418c9d21b570f82519ea..c29839f194dfe2421a70801e059a38be2ca8a205 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -235,6 +235,12 @@ function _q($a) {
 	return (is_int($a)) ? strval($a) : ("'" . addslashes($a) . "'");
 }
 
+function set_spip_doc($fichier) {return $fichier;}
+function get_spip_doc($fichier) {return _DIR_RACINE . $fichier;}
+// pour bientot:
+//function set_spip_doc($fichier) {return substr($fichier, strlen(_DIR_IMG));}
+//function get_spip_doc($fichier) {return _DIR_IMG . $fichier;}
+
 // Renvoie le _GET ou le _POST emis par l'utilisateur
 // ou pioche dans $c si c'est un array()
 // http://doc.spip.org/@_request
diff --git a/ecrire/public/composer.php b/ecrire/public/composer.php
index 18e0cc46291ecd0516d92a6ac299a57eebb13692..6a9e8a4409e25ba99590271a114a02ee7d1c9aa5 100644
--- a/ecrire/public/composer.php
+++ b/ecrire/public/composer.php
@@ -438,8 +438,7 @@ function calcule_logo_document($id_document, $doubdoc, &$doublons, $flag_fichier
 
 	// flag_fichier : seul le fichier est demande
 	if ($flag_fichier)
-		return preg_replace(',^' . preg_quote(_DIR_IMG).',', '',
-			extraire_attribut($logo, 'src'));
+		return substr(extraire_attribut($logo, 'src'), strlen(_DIR_IMG));
 
 
 	// Calculer le code html complet (cf. calcule_logo)
diff --git a/ecrire/urls/html.php b/ecrire/urls/html.php
index 1313e3ee3614b3b2d2ceace40640e001e1047594..d8e197cd53f26c7285822e6805f2e5533b4c1ada 100644
--- a/ecrire/urls/html.php
+++ b/ecrire/urls/html.php
@@ -73,7 +73,7 @@ function generer_url_document($id_document) {
 	if (($GLOBALS['meta']["creer_htaccess"]) == 'oui')
 		return generer_url_action('autoriser', "arg=$id_document", true);
 	$row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document"));
-	if ($row) return ($row['fichier']);
+	if ($row) return get_spip_doc($row['fichier']);
 	return '';
 }
 
diff --git a/ecrire/urls/page.php b/ecrire/urls/page.php
index 959b2f113e7b772a65e2eeb76b5cb3402ebfefba..a7915bfb4f619fa069143de7c0c6bb18c5d73337 100644
--- a/ecrire/urls/page.php
+++ b/ecrire/urls/page.php
@@ -68,7 +68,7 @@ function generer_url_document($id_document) {
 	if (($GLOBALS['meta']["creer_htaccess"]) == 'oui')
 		return generer_url_action('autoriser',"arg=$id_document", true);
 	$row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document"));
-	if ($row) return ($row['fichier']);
+	if ($row) return get_spip_doc($row['fichier']);
 	return '';
 }
 
diff --git a/ecrire/urls/propres.php b/ecrire/urls/propres.php
index 375511817ebe8dce3df3602d5741468efa427f88..d36c53940c429293f03de85419e19ed2cb6d95bf 100644
--- a/ecrire/urls/propres.php
+++ b/ecrire/urls/propres.php
@@ -202,7 +202,7 @@ function generer_url_document($id_document) {
 	if (($GLOBALS['meta']["creer_htaccess"]) == 'oui')
 	  return generer_url_action('autoriser',"arg=$id_document", true);
 	$row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document"));
-	if ($row) return ($row['fichier']);
+	if ($row) return get_spip_doc($row['fichier']);
 	return '';
 }
 
diff --git a/ecrire/urls/standard.php b/ecrire/urls/standard.php
index 5b409e08f54b2a39771791707b90a923836a0aa3..af57ffb6f9217710a0fefcbcf5e4309f541567ee 100644
--- a/ecrire/urls/standard.php
+++ b/ecrire/urls/standard.php
@@ -53,7 +53,7 @@ function generer_url_document($id_document) {
 	if (($GLOBALS['meta']["creer_htaccess"]) == 'oui')
 		return generer_url_action('autoriser',"arg=$id_document", true);
 	$row = @spip_fetch_array(spip_query("SELECT fichier FROM spip_documents WHERE id_document = $id_document"));
-	if ($row) return ($row['fichier']);
+	if ($row) return get_spip_doc($row['fichier']);
 	return '';
 }