diff --git a/.gitattributes b/.gitattributes
index 88d871e0d872948d2872b7b1b96a8ddfaa58506b..493d26abd74b10b49e1eeceb5dad4187b3b0d48b 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -98,24 +98,15 @@ ecrire/exec/configuration.php -text
 ecrire/exec/controle_forum.php -text
 ecrire/exec/controle_petition.php -text
 ecrire/exec/convert_utf8.php -text
-ecrire/exec/dater.php -text
 ecrire/exec/delete_all.php -text
-ecrire/exec/discuter.php -text
-ecrire/exec/documenter.php -text
 ecrire/exec/documents_liste.php -text
-ecrire/exec/editer_auteurs.php -text
-ecrire/exec/editer_mot.php -text
 ecrire/exec/export_all.php -text
 ecrire/exec/forum.php -text
 ecrire/exec/forum_admin.php -text
 ecrire/exec/forum_envoi.php -text
-ecrire/exec/grouper_mots.php -text
 ecrire/exec/import_all.php -text
-ecrire/exec/informer.php -text
 ecrire/exec/install.php -text
 ecrire/exec/lang_raccourcis.php -text
-ecrire/exec/legender.php -text
-ecrire/exec/memoriser.php -text
 ecrire/exec/message.php -text
 ecrire/exec/message_edit.php -text
 ecrire/exec/messagerie.php -text
@@ -123,15 +114,8 @@ ecrire/exec/mots_edit.php -text
 ecrire/exec/mots_tous.php -text
 ecrire/exec/mots_type.php -text
 ecrire/exec/naviguer.php -text
-ecrire/exec/petitionner.php -text
-ecrire/exec/plonger.php -text
-ecrire/exec/poster.php -text
 ecrire/exec/recherche.php -text
-ecrire/exec/rechercher.php -text
-ecrire/exec/referencer_traduction.php -text
-ecrire/exec/rubriquer.php -text
 ecrire/exec/rubriques_edit.php -text
-ecrire/exec/selectionner.php -text
 ecrire/exec/sites_edit.php -text
 ecrire/exec/sites_tous.php -text
 ecrire/exec/statistiques_lang.php -text
@@ -140,9 +124,25 @@ ecrire/exec/statistiques_repartition.php -text
 ecrire/exec/statistiques_svg.php -text
 ecrire/exec/statistiques_visites.php -text
 ecrire/exec/synchro.php -text
-ecrire/exec/tourner.php -text
 ecrire/exec/upgrade.php -text
-ecrire/exec/virtualiser.php -text
+ecrire/fragments/dater.php -text
+ecrire/fragments/discuter.php -text
+ecrire/fragments/documenter.php -text
+ecrire/fragments/editer_auteurs.php -text
+ecrire/fragments/editer_mot.php -text
+ecrire/fragments/grouper_mots.php -text
+ecrire/fragments/informer.php -text
+ecrire/fragments/legender.php -text
+ecrire/fragments/memoriser.php -text
+ecrire/fragments/petitionner.php -text
+ecrire/fragments/plonger.php -text
+ecrire/fragments/poster.php -text
+ecrire/fragments/rechercher.php -text
+ecrire/fragments/referencer_traduction.php -text
+ecrire/fragments/rubriquer.php -text
+ecrire/fragments/selectionner.php -text
+ecrire/fragments/tourner.php -text
+ecrire/fragments/virtualiser.php -text
 ecrire/img_pack/admin-12.gif -text
 ecrire/img_pack/administration-24.gif -text
 ecrire/img_pack/administration-48.png -text
diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php
index ad253c0fa0fcb6a1c7e62c77d1a3ef275d23e7c7..18fc4a9d214f385a0c43e0ed7aa907ee58a67fbe 100644
--- a/ecrire/exec/articles.php
+++ b/ecrire/exec/articles.php
@@ -21,10 +21,10 @@ include_spip('inc/date');
 include_spip('inc/petition');
 include_spip('inc/documents');
 include_spip('base/abstract_sql');
-include_spip('exec/editer_auteurs');
-include_spip('exec/referencer_traduction');
-include_spip('exec/virtualiser');
-include_spip('exec/discuter');
+include_spip('fragments/editer_auteurs');
+include_spip('fragments/referencer_traduction');
+include_spip('fragments/virtualiser');
+include_spip('fragments/discuter');
 
 // http://doc.spip.org/@exec_articles_dist
 function exec_articles_dist()
diff --git a/ecrire/exec/mots_tous.php b/ecrire/exec/mots_tous.php
index b9b037c967bc4240938285477206f8825282da7c..0feb605767e7a10bf039b8a64d5ce70fb0f83ba4 100644
--- a/ecrire/exec/mots_tous.php
+++ b/ecrire/exec/mots_tous.php
@@ -12,7 +12,7 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-include_spip('exec/grouper_mots');
+include_spip('fragments/grouper_mots');
 
 // http://doc.spip.org/@exec_mots_tous_dist
 function exec_mots_tous_dist()
diff --git a/ecrire/exec/dater.php b/ecrire/fragments/dater.php
similarity index 94%
rename from ecrire/exec/dater.php
rename to ecrire/fragments/dater.php
index 7dd3ed670ff5471a60bd1be000d02409b4928612..2eacf88a48205c34de94dc257bd30229a6134f54 100644
--- a/ecrire/exec/dater.php
+++ b/ecrire/fragments/dater.php
@@ -12,8 +12,8 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-// http://doc.spip.org/@exec_dater_dist
-function exec_dater_dist()
+// http://doc.spip.org/@fragments_dater_dist
+function fragments_dater_dist()
 {
 	global $id_article;
 	$id_article = intval($id_article);
diff --git a/ecrire/exec/discuter.php b/ecrire/fragments/discuter.php
similarity index 95%
rename from ecrire/exec/discuter.php
rename to ecrire/fragments/discuter.php
index daae13c6e8ee6f6289ec463782ad5cef35b41578..fabb9d315240fa9ee060c3e5c453a602a9b19867 100644
--- a/ecrire/exec/discuter.php
+++ b/ecrire/fragments/discuter.php
@@ -48,8 +48,8 @@ function formulaire_discuter($query, $total, $debut, $total_afficher, $script, $
 	return $res;
 }
 
-// http://doc.spip.org/@exec_discuter_dist
-function exec_discuter_dist($id_article=-1, $debut=-1)
+// http://doc.spip.org/@fragments_discuter_dist
+function fragments_discuter_dist($id_article=-1, $debut=-1)
 {
   if ($debut == -1) $debut = _request('debut');
   if ($id_article == -1) $id_article = _request('id_article');
diff --git a/ecrire/exec/documenter.php b/ecrire/fragments/documenter.php
similarity index 99%
rename from ecrire/exec/documenter.php
rename to ecrire/fragments/documenter.php
index 976f03794a4b27666fd95c9db03c38c9cea6dd82..82dafb2a0ae6f83e25ed2c94803113bf9eb72b3a 100644
--- a/ecrire/exec/documenter.php
+++ b/ecrire/fragments/documenter.php
@@ -15,7 +15,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 include_spip('inc/presentation');
 include_spip('inc/texte');
 
-function exec_documenter_dist()
+function fragments_documenter_dist()
 {
 	$type = _request("type");
 	$s = _request("s");
diff --git a/ecrire/exec/editer_auteurs.php b/ecrire/fragments/editer_auteurs.php
similarity index 99%
rename from ecrire/exec/editer_auteurs.php
rename to ecrire/fragments/editer_auteurs.php
index 0562ca85ca1cc1c447b80d4d1c4bb4336e51ea92..153cb445a86317f595a2f1ea55f4a8ec7fcc0ba3 100644
--- a/ecrire/exec/editer_auteurs.php
+++ b/ecrire/fragments/editer_auteurs.php
@@ -15,7 +15,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 include_spip('inc/presentation');
 include_spip('inc/actions');
 
-function exec_editer_auteurs_dist()
+function fragments_editer_auteurs_dist()
 {
 	$id_article = intval(_request('id_article'));
 
diff --git a/ecrire/exec/editer_mot.php b/ecrire/fragments/editer_mot.php
similarity index 95%
rename from ecrire/exec/editer_mot.php
rename to ecrire/fragments/editer_mot.php
index 27a371e81169d9ef30e93b1fffed46462e6b9638..9b19ad6358bfb3f3442f4bb87b4c7890ef783f72 100644
--- a/ecrire/exec/editer_mot.php
+++ b/ecrire/fragments/editer_mot.php
@@ -12,8 +12,8 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-// http://doc.spip.org/@exec_editer_mot_dist
-function exec_editer_mot_dist()
+// http://doc.spip.org/@fragments_editer_mot_dist
+function fragments_editer_mot_dist()
 {
 	include_spip('inc/actions');
 	include_spip('inc/mots');
diff --git a/ecrire/exec/grouper_mots.php b/ecrire/fragments/grouper_mots.php
similarity index 99%
rename from ecrire/exec/grouper_mots.php
rename to ecrire/fragments/grouper_mots.php
index 3366aa3269ddd1f30a95206a38c9a452a4516226..1f1e4a6a5a8b40206d0507d971fddf6d022a9fbc 100644
--- a/ecrire/exec/grouper_mots.php
+++ b/ecrire/fragments/grouper_mots.php
@@ -16,7 +16,7 @@ include_spip('inc/presentation');
 include_spip('inc/actions');
 include_spip('base/abstract_sql');
 
-function exec_grouper_mots_dist()
+function fragments_grouper_mots_dist()
 {
 	$id_groupe = intval(_request('id_groupe'));
 	$cpt = spip_fetch_array(spip_query("SELECT COUNT(*) AS n FROM spip_mots WHERE id_groupe=$id_groupe"));
diff --git a/ecrire/exec/informer.php b/ecrire/fragments/informer.php
similarity index 97%
rename from ecrire/exec/informer.php
rename to ecrire/fragments/informer.php
index 63f1b9abbe67777a2f312bc1c571297877f8a75f..72adaa1d1feb079752c106d9eb86aa3e41be41b1 100644
--- a/ecrire/exec/informer.php
+++ b/ecrire/fragments/informer.php
@@ -14,8 +14,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 # Affiche les infos d'une rubrique selectionnee dans le mini navigateur
 
-// http://doc.spip.org/@exec_informer_dist
-function exec_informer_dist()
+// http://doc.spip.org/@fragments_informer_dist
+function fragments_informer_dist()
 {
 	global $couleur_foncee,$spip_display,$spip_lang_right ;
 	global $id, $exclus, $col, $type, $rac;
diff --git a/ecrire/exec/legender.php b/ecrire/fragments/legender.php
similarity index 97%
rename from ecrire/exec/legender.php
rename to ecrire/fragments/legender.php
index 4049c354db625836c9b1f5f49fb1879618b8b410..274c798a94e92ae5f1e9cbc63ff791bf5d43b0cc 100644
--- a/ecrire/exec/legender.php
+++ b/ecrire/fragments/legender.php
@@ -12,7 +12,7 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-function exec_legender_dist()
+function fragments_legender_dist()
 {
 	global $id_document, $id, $type, $ancre, $script;
 	$id = intval($id);
diff --git a/ecrire/exec/memoriser.php b/ecrire/fragments/memoriser.php
similarity index 95%
rename from ecrire/exec/memoriser.php
rename to ecrire/fragments/memoriser.php
index 2ffe953fa13d51452b4c86833466f512d2ccc60b..1842f7c38259b841ac729fdf5bc438dea22881b0 100644
--- a/ecrire/exec/memoriser.php
+++ b/ecrire/fragments/memoriser.php
@@ -12,8 +12,8 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-// http://doc.spip.org/@exec_memoriser_dist
-function exec_memoriser_dist()
+// http://doc.spip.org/@fragments_memoriser_dist
+function fragments_memoriser_dist()
 {
 	global $flag_ob;
 
diff --git a/ecrire/exec/petitionner.php b/ecrire/fragments/petitionner.php
similarity index 93%
rename from ecrire/exec/petitionner.php
rename to ecrire/fragments/petitionner.php
index 3f7f03ac44255eb806732ff078f18f87ead577d0..9e5e1e70a4fdd431886357d42b755c7373d631b8 100644
--- a/ecrire/exec/petitionner.php
+++ b/ecrire/fragments/petitionner.php
@@ -12,8 +12,8 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-// http://doc.spip.org/@exec_petitionner_dist
-function exec_petitionner_dist()
+// http://doc.spip.org/@fragments_petitionner_dist
+function fragments_petitionner_dist()
 {
 	global $id_article, $script;
 	$id_article = intval($id_article);
diff --git a/ecrire/exec/plonger.php b/ecrire/fragments/plonger.php
similarity index 93%
rename from ecrire/exec/plonger.php
rename to ecrire/fragments/plonger.php
index 4d22179019f4b6304b88fb1a53dde048e723036f..77cb563047d594a41edf555761c995514296c55c 100644
--- a/ecrire/exec/plonger.php
+++ b/ecrire/fragments/plonger.php
@@ -15,8 +15,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 # afficher les sous-rubriques d'une rubrique (composant du mini-navigateur)
 
-// http://doc.spip.org/@exec_plonger_dist
-function exec_plonger_dist()
+// http://doc.spip.org/@fragments_plonger_dist
+function fragments_plonger_dist()
 {
 	global $id, $exclus, $col, $rac;
 	$id = intval($id);
diff --git a/ecrire/exec/poster.php b/ecrire/fragments/poster.php
similarity index 93%
rename from ecrire/exec/poster.php
rename to ecrire/fragments/poster.php
index 659d3c3679870ee967e146a75752a58f64c42f37..34f6fd97716d58109c7945c3f194816d4a98dcf5 100644
--- a/ecrire/exec/poster.php
+++ b/ecrire/fragments/poster.php
@@ -12,8 +12,8 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-// http://doc.spip.org/@exec_poster_dist
-function exec_poster_dist()
+// http://doc.spip.org/@fragments_poster_dist
+function fragments_poster_dist()
 {
 	global $id_article, $script;
 	$id_article = intval($id_article);
diff --git a/ecrire/exec/rechercher.php b/ecrire/fragments/rechercher.php
similarity index 97%
rename from ecrire/exec/rechercher.php
rename to ecrire/fragments/rechercher.php
index db80b21de2c088b5ce7be9726dc876024af389cb..2d4a6e34190e409a71970017f9101b787129cf49 100644
--- a/ecrire/exec/rechercher.php
+++ b/ecrire/fragments/rechercher.php
@@ -14,8 +14,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 # gerer un charset minimaliste en convertissant tout en unicode &#xxx;
 
-// http://doc.spip.org/@exec_rechercher_dist
-function exec_rechercher_dist()
+// http://doc.spip.org/@fragments_rechercher_dist
+function fragments_rechercher_dist()
 {
 	global $flag_ob;
 
diff --git a/ecrire/exec/referencer_traduction.php b/ecrire/fragments/referencer_traduction.php
similarity index 99%
rename from ecrire/exec/referencer_traduction.php
rename to ecrire/fragments/referencer_traduction.php
index c5f13de818cf36fb859b4ab5dcff99e34c25bcc4..a327d51cf99216611829477137910747ceca421c 100644
--- a/ecrire/exec/referencer_traduction.php
+++ b/ecrire/fragments/referencer_traduction.php
@@ -14,7 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_spip('inc/presentation');
 
-function exec_referencer_traduction_dist()
+function fragments_referencer_traduction_dist()
 {
 	include_spip('inc/actions');
 
diff --git a/ecrire/exec/rubriquer.php b/ecrire/fragments/rubriquer.php
similarity index 92%
rename from ecrire/exec/rubriquer.php
rename to ecrire/fragments/rubriquer.php
index 121c9109563c7669b6c3fe0667f613346dc0fb93..9ff1da6a326a90baf83c133278aacfdf1c26995d 100644
--- a/ecrire/exec/rubriquer.php
+++ b/ecrire/fragments/rubriquer.php
@@ -14,8 +14,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 # petit moteur de recherche sur les rubriques
 
-// http://doc.spip.org/@exec_rubriquer_dist
-function exec_rubriquer_dist()
+// http://doc.spip.org/@fragments_rubriquer_dist
+function fragments_rubriquer_dist()
 {
 	global $id;
 	$id = intval($id);
diff --git a/ecrire/exec/selectionner.php b/ecrire/fragments/selectionner.php
similarity index 92%
rename from ecrire/exec/selectionner.php
rename to ecrire/fragments/selectionner.php
index 810cc0295a57e2ab3c8d36a726923778cecad1d1..8da36f45f726c956b55297ccdec7083128059410 100644
--- a/ecrire/exec/selectionner.php
+++ b/ecrire/fragments/selectionner.php
@@ -14,8 +14,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 # afficher un mini-navigateur de rubriques
 
-// http://doc.spip.org/@exec_selectionner_dist
-function exec_selectionner_dist()
+// http://doc.spip.org/@fragments_selectionner_dist
+function fragments_selectionner_dist()
 {
 	global $id, $exclus, $rac;
 	$id = intval($id);
diff --git a/ecrire/exec/tourner.php b/ecrire/fragments/tourner.php
similarity index 94%
rename from ecrire/exec/tourner.php
rename to ecrire/fragments/tourner.php
index 049600a3806566651641ca0c8978ca9efabbd528..da97affce083ca5d16bd06b351a1919c855f9e91 100644
--- a/ecrire/exec/tourner.php
+++ b/ecrire/fragments/tourner.php
@@ -12,8 +12,8 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-// http://doc.spip.org/@exec_tourner_dist
-function exec_tourner_dist()
+// http://doc.spip.org/@fragments_tourner_dist
+function fragments_tourner_dist()
 {
 	global $id_document, $script, $id, $type, $ancre;
 	$id = intval($id);
diff --git a/ecrire/exec/virtualiser.php b/ecrire/fragments/virtualiser.php
similarity index 98%
rename from ecrire/exec/virtualiser.php
rename to ecrire/fragments/virtualiser.php
index 34c321bb84cfe610d01fe818940482b6c5a586f5..2761d30d25a663f50d1dd696e033bcf7164132de 100644
--- a/ecrire/exec/virtualiser.php
+++ b/ecrire/fragments/virtualiser.php
@@ -45,7 +45,7 @@ function formulaire_virtualiser($id_article, $virtuel, $script, $args)
 }
 
 // http://doc.spip.org/@exec_virtualiser_dist
-function exec_virtualiser_dist()
+function fragments_virtualiser_dist()
 {
 	global $id_article, $script;
 	$id_article = intval($id_article);
diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php
index 9f99d6bdc96bfeb8c87354cad7c0d9f751c52c15..4703d73ffbbc64414dc0ee1f8c9307dd47745792 100644
--- a/ecrire/inc/documents.php
+++ b/ecrire/inc/documents.php
@@ -15,7 +15,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 include_spip('inc/actions'); // *action_auteur et determine_upload
 include_spip('inc/date');
 include_spip('base/abstract_sql');
-include_spip('exec/documenter');
+include_spip('fragments/documenter');
 
 //
 // Vignette pour les documents lies
diff --git a/ecrire/inc/plugin.php b/ecrire/inc/plugin.php
index e772a58fcc8c1946f2042a9f02e4c498b4cc26a0..bed8a1148ff8d59bd0612ad958fdb0ecf0ae5ed2 100644
--- a/ecrire/inc/plugin.php
+++ b/ecrire/inc/plugin.php
@@ -32,7 +32,7 @@ function liste_plugin_files(){
 	return $plugin_files;
 }
 
-//  à utiliser pour initialiser ma variable globale $plugin
+//  A utiliser pour initialiser ma variable globale $plugin
 // http://doc.spip.org/@liste_plugin_actifs
 function liste_plugin_actifs(){
   $meta_plugin = isset($GLOBALS['meta']['plugin'])?$GLOBALS['meta']['plugin']:'';
@@ -126,7 +126,12 @@ function ecrire_plugin_actifs($plugin,$pipe_recherche=false){
 
 	$liste_fichier_verif2 = pipeline_precompile();
 	$liste_fichier_verif = array_merge($liste_fichier_verif,$liste_fichier_verif2);
-	verification_precompile($liste_fichier_verif);
+
+	// horrible !
+	foreach ($liste_fichier_verif as $k => $f)
+		$liste_fichier_verif[$k] = _DIR_PLUGINS.preg_replace(",(_DIR_PLUGINS\.)?',", "", $f);
+	ecrire_fichier(_DIR_TMP.'verifier_plugins.txt',
+		serialize($liste_fichier_verif));
 }
 
 // precompilation des pipelines
@@ -176,25 +181,7 @@ function pipeline_precompile(){
 	return $liste_fichier_verif;
 }
 
-// http://doc.spip.org/@verification_precompile
-function verification_precompile($liste_fichier_verif){
-	$start_file = "<"."?php\nif (!defined('_ECRIRE_INC_VERSION')) return;
-	// http://doc.spip.org/@verifier_presence_plugins
-	function verifier_presence_plugins(){
-		\$ok = true;";
-	$end_file = "
-		return \$ok;
-	}\n?".">";
-	$content = "";
-	foreach($liste_fichier_verif as $fichier){
-		$content .= "
-		\$ok = \$ok & @is_readable($fichier);";
-	}
-	ecrire_fichier(_DIR_TMP."verifier_presence_plugins.php",
-		$start_file . $content . $end_file);
-}
-
-// pas sur que ça serve juste au cas où
+// pas sur que ca serve...
 // http://doc.spip.org/@liste_plugin_inactifs
 function liste_plugin_inactifs(){
 	return array_diff (liste_plugin_files(),liste_plugin_actifs());
@@ -462,24 +449,13 @@ function plugin_verifie_conformite($plug,&$arbre){
 }
 
 // http://doc.spip.org/@verifie_include_plugins
-function verifie_include_plugins(){
-	global $auteur_session;
-	if ($auteur_session['statut']!='0minirezo') return;
-	// verifier la presence des plugins (on a pu en deplacer un)
-	if (@is_readable(_DIR_TMP."verifier_presence_plugins.php")){
-		// verification precompile
-		include_once(_DIR_TMP."verifier_presence_plugins.php");
-		$ok = verifier_presence_plugins();
-		if ($ok) return;
-	}
+function verifie_include_plugins() {
 	if (_request('exec')!="admin_plugin"){
-		if (@is_readable(_DIR_PLUGINS)){
+		if (@is_readable(_DIR_PLUGINS))
 			redirige_par_entete(generer_url_ecrire("admin_plugin"));
-			exit;
-		}
+
 		// plus de repertoire plugin existant, le menu n'existe plus
 		// on fait une mise a jour silencieuse
-		include_spip('inc/plugin');
 		// generer les fichiers php precompiles
 		// de chargement des plugins et des pipelines
 		verif_plugin();
diff --git a/ecrire/index.php b/ecrire/index.php
index 38587bca195f2a6c4dd8054f323c352f28b079b1..2dba7863ed6afed425c3a318ab10caf96c1027a3 100644
--- a/ecrire/index.php
+++ b/ecrire/index.php
@@ -152,14 +152,31 @@ if (isset($GLOBALS['_COOKIE']['spip_lang_ecrire'])) {
 			$auteur_session['lang'] = $var_lang_ecrire;
 			$var_f = charger_fonction('session', 'inc');
 			$var_f($auteur_session);
-	       }
+		}
 	}
- }
+}
 
 //
-// Controle de la version, sauf si on est deja en train de s'en occuper
+// Fragment (ajax) ?
+//
+// var_ajaxcharset repere les requetes de fragments, et indique en plus
+// le charset [utf-8] utilise par le client, utile a _request.
+if (isset($var_ajaxcharset)) {
+	header("Content-Type: text/html; charset=".$GLOBALS['meta']["charset"]);
+	$var_f = charger_fonction($exec, 'fragments');
+	$fragment = $var_f();
+	echo "<","?xml version='1.0' encoding='",
+		$GLOBALS['meta']["charset"],"'?",">\n";
+	echo $fragment;
+	exit;
+}
+
+
+//
+// Gestion d'une page normale de l'espace prive
 //
 
+// Controle de la version, sauf si on est deja en train de s'en occuper
 if (!isset($reinstall)) {
 	if ($spip_version <> ((double) str_replace(',','.',$GLOBALS['meta']['version_installee']))) {
 		include_spip('inc/admin');
@@ -167,35 +184,30 @@ if (!isset($reinstall)) {
 	}
 }
 
-//
 // Controle d'interruption d'une longue restauration
-//
-if ($GLOBALS['_COOKIE']['spip_admin']
-AND isset($GLOBALS['meta']["debut_restauration"])
-AND !($exec=='js_menu_rubriques'))
+if ($_COOKIE['spip_admin']
+AND isset($GLOBALS['meta']["debut_restauration"]))
 	$exec = 'import_all';
-else 
-	// ne pas interrompre une restauration ou un upgrade par un redirect inoportun
-	if ($exec!='upgrade' && $auteur_session['statut']=='0minirezo') {
-		// on verifie la configuration des plugins
-		include_spip('inc/plugin');
-		verifie_include_plugins();
+
+// Verification des plugins
+// (ne pas interrompre une restauration ou un upgrade)
+if ($exec!='upgrade'
+AND $auteur_session['statut']=='0minirezo'
+AND lire_fichier(_DIR_TMP.'verifier_plugins.txt',$l)
+AND false
+AND $l = @unserialize($l)) {
+	foreach ($l as $fichier) {
+		if (!@is_readable($fichier)) {
+			include_spip('inc/plugin');
+			verifie_include_plugins();
+		}
 	}
+}
 
 // Trouver la fonction eventuellement surchagee et l'appeler.
 // Elle envoie parfois des en-tetes http,
 // et en mode Ajax retourne un resultat.
-
 $var_f = charger_fonction($exec);
-$r = $var_f(); 
-
-// Un retour d'Ajax est repere par cette variable, 
-// (qui donne en + le charset utilise par le client, utile a _request).
-// Il faut preciser le charset utilise par le serveur,
-// mais pas avec header(Content-Type ... charset): ca bloque MSIE
+$var_f();
 
-if (isset($var_ajaxcharset)) {
-	header("Content-Type: text/html; charset=".$GLOBALS['meta']["charset"]);
-	echo "<","?xml version='1.0' encoding='",$GLOBALS['meta']["charset"],"'?",">\n", $r;
- }
 ?>