diff --git a/article-dist.html b/article-dist.html
index 78b4e4a97e8c5f4bd5813f7c5129241a077e1138..30608a36befdf409810d44805f3c70a5f998e701 100644
--- a/article-dist.html
+++ b/article-dist.html
@@ -39,7 +39,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
diff --git a/breve-dist.html b/breve-dist.html
index b8f326cd1156317981cc63b049e6362da26a8d68..bec85d3448c4e5fa788c32379cdc22f9ad2f4257 100644
--- a/breve-dist.html
+++ b/breve-dist.html
@@ -40,7 +40,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
diff --git a/ecrire/admin_vider.php3 b/ecrire/admin_vider.php3
index 4a71491b00dff88d60f8dcd04ccb56ba78467a1b..a590e61ba891d833aa5f746c2389360298e30aaf 100644
--- a/ecrire/admin_vider.php3
+++ b/ecrire/admin_vider.php3
@@ -98,14 +98,24 @@ echo "<TR><TD BACKGROUND=''>";
 
 echo "<FONT FACE='Georgia,Garamond,Times,serif' SIZE=3>";
 
-echo "\n<p align='justify'>Utilisez cette commande afin de vider les tables utilis&eacute;es
-par le moteur de recherche int&eacute;gr&eacute; &agrave; SPIP. Cela permet de gagner de
-l'espace disque si vous avez d&eacute;sactiv&eacute; le moteur de recherche. Cela peut servir
-&eacute;galement &agrave; r&eacute;indexer les documents au cas o&ugrave; vous avez restaur&eacute; une sauvegarde.
-
-<p align='justify'>Notez que les documents modifi&eacute;s de fa&ccedil;on normale (depuis l'interface
-SPIP) sont automatiquement r&eacute;index&eacute;s, cette commande n'est donc utile que de fa&ccedil;on exceptionnelle.";
+echo "\n<p align='justify'>";
+if (lire_meta('activer_moteur') == 'oui')
+	echo "<b>Le moteur de recherche est activ&eacute;.</b> Utilisez cette commande
+		si vous souhaitez proc&eacute;der &agrave; une r&eacute;indexation rapide (apr&egrave;s restauration
+		d'une sauvegarde par exemple). Notez que les documents modifi&eacute;s de
+		fa&ccedil;on normale (depuis l'interface SPIP) sont automatiquement
+		r&eacute;index&eacute;s&nbsp;: cette commande n'est donc utile que de fa&ccedil;on exceptionnelle.";
+else {
+	echo "<b>Le moteur de recherche n'est pas activ&eacute;.</b>";
+	$row = spip_fetch_array(spip_query("SELECT COUNT(*) AS cnt FROM spip_index_articles"));
+	if ($row['cnt'])
+		echo " Utilisez cette commande afin de vider les tables d'indexation utilis&eacute;es
+			par le moteur de recherche int&eacute;gr&eacute; &agrave; SPIP. Cela vous permettra
+			de gagner de l'espace disque.";
+	else
+		echo " Les tables d'indexation du moteur sont vides.";
 
+}
 
 echo "\n<FORM ACTION='admin_vider.php3' METHOD='post'>";
 
diff --git a/ecrire/inc_statistiques.php3 b/ecrire/inc_statistiques.php3
index 8ae432a0f795bfc360dc9f794c545fd839d69ba5..339ca6bdb57ee40b2841984e36683896e63585b5 100644
--- a/ecrire/inc_statistiques.php3
+++ b/ecrire/inc_statistiques.php3
@@ -215,6 +215,7 @@ function calculer_n_referers($nb_referers) {
 
 
 function calculer_referers() {
+	spip_log("analyse referers");
 	$encore = calculer_n_referers(100);
 	if ($encore) {
 		include_ecrire("inc_meta.php3");
@@ -233,6 +234,7 @@ function calculer_referers() {
 //
 
 function calculer_visites($date = "") {
+	spip_log("analyse visites");
 
 	// calculer les popularites avant d'effacer les donnees
 	calculer_popularites();
@@ -290,6 +292,8 @@ function calculer_visites($date = "") {
 //
 
 function calculer_popularites() {
+	spip_log("analyse popularites");
+
 	$date = lire_meta('date_stats_popularite');
 	include_ecrire("inc_meta.php3");
 	ecrire_meta("date_stats_popularite", time());
diff --git a/forum-dist.html b/forum-dist.html
index 5727b2e3307a80cd4fbd2dd1a25fe07700fc2ecf..91cc293fe3469d01953603fec9b0d4317fa39bc4 100644
--- a/forum-dist.html
+++ b/forum-dist.html
@@ -36,7 +36,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
diff --git a/inc-public-global.php3 b/inc-public-global.php3
index 209c43584028503e945f28ea9ea076366720c905..6bba044e7f14b7b3cf9167a490252bc0f939368f 100644
--- a/inc-public-global.php3
+++ b/inc-public-global.php3
@@ -155,6 +155,7 @@ if (file_exists($chemin_cache)) {
 
 if ($var_recherche) {
 	fin_surligne($var_recherche, $mode_surligne);
+	$timeout = true; // risque timeout
 }
 
 
@@ -193,8 +194,8 @@ if (!file_exists("CACHE/.htaccess")) {
 if (lire_meta('activer_moteur') == 'oui') {
 	$fichier_index = 'ecrire/data/.index';
 	if ($db_ok) {
-		include_ecrire("inc_texte.php3");
-		include_ecrire("inc_filtres.php3");
+		// include_ecrire("inc_texte.php3");
+		// include_ecrire("inc_filtres.php3");
 		include_ecrire("inc_index.php3");
 		$s = '';
 		if ($id_article AND !deja_indexe('article', $id_article))
@@ -215,7 +216,7 @@ if (lire_meta('activer_moteur') == 'oui') {
 	}
 	if ($use_cache AND file_exists($fichier_index) AND $size = filesize($fichier_index)) {
 		include_ecrire("inc_connect.php3");
-		if ($db_ok) {
+		if (!$timeout AND $db_ok) {
 			include_ecrire("inc_texte.php3");
 			include_ecrire("inc_filtres.php3");
 			include_ecrire("inc_index.php3");
@@ -226,8 +227,10 @@ if (lire_meta('activer_moteur') == 'oui') {
 			$f = fopen($fichier_index, 'w');
 			fwrite($f, $suite);
 			fclose($f);
-			$s = explode(' ', $s);
+			$s = explode(' ', trim($s));
+			spip_log("indexation $s[0] $s[1]");
 			indexer_objet($s[0], $s[1], false);
+			$timeout = true;
 		}
 	}
 }
@@ -239,8 +242,9 @@ if (lire_meta('activer_moteur') == 'oui') {
 // Se declenche une fois par jour quand le cache n'est pas recalcule
 //
 
-if ($use_cache && file_exists('CACHE/.purge2') && $db_ok) {
+if (!$timeout AND $use_cache AND file_exists('CACHE/.purge2') AND $db_ok) {
 	unlink('CACHE/.purge2');
+	spip_log("purge cache niveau 2");
 	$query = "SELECT fichier FROM spip_forum_cache WHERE maj < DATE_SUB(NOW(), INTERVAL 14 DAY)";
 	$result = spip_query($query);
 	unset($fichiers);
@@ -252,14 +256,17 @@ if ($use_cache && file_exists('CACHE/.purge2') && $db_ok) {
 		$query = "DELETE FROM spip_forum_cache WHERE fichier IN (".join(',', $fichiers).")";
 		spip_query($query);
 	}
+	$timeout = true;
 }
 
-if ($use_cache && file_exists('CACHE/.purge')) {
+if (!$timeout AND $use_cache AND file_exists('CACHE/.purge')) {
 	unlink('CACHE/.purge');
+	spip_log("purge cache niveau 1");
 	$f = fopen('CACHE/.purge2', 'w');
 	fclose($f);
 	include_local ("inc-cache.php3");
 	purger_repertoire('CACHE', 14 * 24 * 3600);
+	$timeout = true;
 }
 
 
@@ -281,8 +288,7 @@ if ($admin_ok AND !$flag_preserver AND !$flag_boutons_admin) {
 // Mise a jour d'un (ou de zero) site syndique
 //
 
-if ($db_ok AND lire_meta("activer_syndic") != "non") {
-	flush();
+if (!$timeout AND $db_ok AND lire_meta("activer_syndic") != "non") {
 	include_ecrire("inc_texte.php3");
 	include_ecrire("inc_filtres.php3");
 	include_ecrire("inc_sites.php3");
@@ -290,6 +296,7 @@ if ($db_ok AND lire_meta("activer_syndic") != "non") {
 
 	executer_une_syndication();
 	executer_une_indexation_syndic();
+	$timeout = true;
 }
 
 //
@@ -307,7 +314,7 @@ if (lire_meta("activer_statistiques") != "non") {
 //
 
 $majnouv = lire_meta('majnouv');
-if (lire_meta('quoi_de_neuf') == 'oui' AND $jours_neuf = lire_meta('jours_neuf')
+if (!$timeout AND lire_meta('quoi_de_neuf') == 'oui' AND $jours_neuf = lire_meta('jours_neuf')
 	AND $adresse_neuf = lire_meta('adresse_neuf') AND (time() - $majnouv) > 3600 * 24 * $jours_neuf) {
 	include_ecrire('inc_connect.php3');
 	if ($db_ok) {
@@ -344,6 +351,7 @@ if (lire_meta('quoi_de_neuf') == 'oui' AND $jours_neuf = lire_meta('jours_neuf')
 		} else
 			spip_log("envoi mail nouveautes : pas de nouveautes");
 	}
+	$timeout = true;
 }
 
 ?>
diff --git a/inc-stats.php3 b/inc-stats.php3
index 9ae71fa12274403ec3bdb2bda7bfee8b5e692162..9a60365fdba01ef8018a7e24a32c410582d6a9fa 100644
--- a/inc-stats.php3
+++ b/inc-stats.php3
@@ -6,12 +6,8 @@ if (defined("_INC_STATS")) return;
 define("_INC_STATS", "1");
 
 function ecrire_stats() {
-	global $id_article, $id_breve, $id_rubrique, $admin_ok;
-	include_ecrire("inc_connect.php3");
-	if (!$GLOBALS['db_ok'])
-		return;
+	global $id_article, $id_breve, $id_rubrique, $admin_ok, $timeout;
 
-	// Essai de fichier de log simplifie
 	$log_ip = $GLOBALS['REMOTE_ADDR'];
 	if ($id_rubrique > 0) {
 		$log_type = "rubrique";
@@ -36,7 +32,34 @@ function ecrire_stats() {
 	}
 	else return;
 
+
+	//
+	// Loguer la visite dans la base si possible
+	//
+	if ($log_type != "autre") {
+		$query = "INSERT IGNORE INTO spip_visites_temp (ip, type, id_objet) ".
+			"VALUES ($log_ip, '$log_type', $log_id_num)";
+		spip_query($query);
+	}
+	if (lire_meta('activer_statistiques_ref') == 'oui') {
+		$url_site_spip = lire_meta('adresse_site');
+		$url_site_spip = eregi_replace("^(https?|ftp://)www\.", "\\1(www)?\.", $url_site_spip);
+		$log_referer = $GLOBALS['HTTP_REFERER'];
+		if (eregi($url_site_spip, $log_referer) AND !$GLOBALS['var_recherche']) $log_referer = "";
+		if ($log_referer) {
+			$referer_md5 = '0x'.substr(md5($log_referer), 0, 16);
+			$query = "INSERT IGNORE INTO spip_referers_temp (ip, referer, referer_md5, type, id_objet) ".
+				"VALUES ($log_ip, '$log_referer', $referer_md5, '$log_type', $log_id_num)";
+			spip_query($query);
+		}
+	}
+
+
+	//
 	// Archivage des visites temporaires
+	//
+	if ($timeout) return;
+
 	$date = date("Y-m-d");
 	$last_date = lire_meta("date_statistiques");
 
@@ -46,6 +69,7 @@ function ecrire_stats() {
 		ecrire_meta('calculer_referers_now', 'non');
 		ecrire_metas();
 		calculer_referers();
+		$timeout = true;
 	} else if ($date != $last_date) {
 		include_ecrire("inc_meta.php3");
 		include_ecrire("inc_statistiques.php3");
@@ -60,35 +84,15 @@ function ecrire_stats() {
 			ecrire_meta('calculer_referers_now','oui');
 			ecrire_metas();
 		}
+		$timeout = true;
 	}
 
-	// Log simple des visites
-	if ($log_type != "autre") {
-		$query = "INSERT IGNORE INTO spip_visites_temp (ip, type, id_objet) ".
-			"VALUES ($log_ip, '$log_type', $log_id_num)";
-		spip_query($query);
-	}
-
-	// Log complexe (referers)
-	if (lire_meta('activer_statistiques_ref') == 'oui') {
-		$url_site_spip = lire_meta('adresse_site');
-		$url_site_spip = eregi_replace("^(https?|ftp://)www\.", "\\1(www)?\.", $url_site_spip);
-		$log_referer = $GLOBALS['HTTP_REFERER'];
-		if (eregi($url_site_spip, $log_referer) AND !$GLOBALS['var_recherche']) $log_referer = "";
-		if ($log_referer) {
-			$referer_md5 = '0x'.substr(md5($log_referer), 0, 16);
-			$query = "INSERT IGNORE INTO spip_referers_temp (ip, referer, referer_md5, type, id_objet) ".
-				"VALUES ($log_ip, '$log_referer', $referer_md5, '$log_type', $log_id_num)";
-			spip_query($query);
-		}
-	}
-
-
 	// popularite, mise a jour dix minutes
 	$date_popularite = lire_meta('date_stats_popularite');
-	if ((time() - $date_popularite) > 600) {
+	if (!$timeout AND ((time() - $date_popularite) > 600)) {
 		include_ecrire("inc_statistiques.php3");
 		calculer_popularites();
+		$timeout = true;
 	}
 
 
@@ -100,7 +104,6 @@ function ecrire_stats() {
 		ecrire_meta('calculer_referers_now', 'oui');
 		ecrire_metas();
 	}
-	
 }
 
 
diff --git a/mot-dist.html b/mot-dist.html
index 5785eb76f057fecf53094bf25ff133b6dcbfab0e..cee3f5cec5f2bef3e77388f16d9688d7046685c2 100644
--- a/mot-dist.html
+++ b/mot-dist.html
@@ -39,7 +39,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
diff --git a/recherche-dist.html b/recherche-dist.html
index aa620e7e354054798b7a253c4f135377e1f77ff5..17dc7026a486776c1ea400527c0d96f7ea110549 100644
--- a/recherche-dist.html
+++ b/recherche-dist.html
@@ -36,7 +36,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
diff --git a/resume-dist.html b/resume-dist.html
index a93fe5f0d40c6e3e1fef4122846ae37394379614..54e6a6bb5b4a60f773ed3b4695881308c63ad7c1 100644
--- a/resume-dist.html
+++ b/resume-dist.html
@@ -35,7 +35,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
diff --git a/rubrique-dist.html b/rubrique-dist.html
index f9c497cada6d86be26de88644c276afa1f48a011..7d8b51d89f6567da784b08f48d2f64f0a34ba91c 100644
--- a/rubrique-dist.html
+++ b/rubrique-dist.html
@@ -39,7 +39,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>
@@ -177,6 +177,10 @@
 [<div class="chapo">(#TEXTE)</div>]
 [<div class="notes">(#NOTES)</div>]
 
+<BOUCLE_documents_joints(DOCUMENTS) {id_rubrique} {mode=document} {doublons} {"<br>"}>
+[(#LOGO_DOCUMENT|#URL_DOCUMENT)][<br>(#TITRE)][ - (#DESCRIPTIF)]
+</BOUCLE_documents_joints>
+<br>
 
 <!-- Articles recents -->
 
diff --git a/sommaire-dist.html b/sommaire-dist.html
index 81a130fb040812ade9f076934b9c9505c37db552..60de9049260f40d383d518045681d84a50c0f409 100644
--- a/sommaire-dist.html
+++ b/sommaire-dist.html
@@ -36,7 +36,7 @@
 	<a href="resume.php3" title="Articles populaires et derniers messages de forum">En r&eacute;sum&eacute;</a>
 	</li>
 	<li class="menu-item">
-	<a href="ecrire" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
+	<a href="ecrire/" title="Acc&eacute;der &agrave; l'espace r&eacute;serv&eacute; aux r&eacute;dacteurs">Administration</a>
 	</li>
 </ul>
 </div>