diff --git a/.gitattributes b/.gitattributes
index 1c3e3835bde4df736e3d97ddc96092f03036e1d0..533ae49cfad4bbd8b4befb0499e72c16ebfa4df7 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -334,21 +334,21 @@ ecrire/img_pack/visiter-48_rtl.png -text
 ecrire/img_pack/warning-24.gif -text
 ecrire/img_pack/warning.gif -text
 ecrire/img_pack/xml.gif -text
-ecrire/inc_agenda.php -text
-ecrire/inc_ajax.php -text
-ecrire/inc_auteur_voir.php -text
-ecrire/inc_boutons.php -text
-ecrire/inc_cookie.php -text
-ecrire/inc_distant.php -text
+ecrire/inc/agenda.php -text
+ecrire/inc/ajax.php -text
+ecrire/inc/auteur_voir.php -text
+ecrire/inc/boutons.php -text
+ecrire/inc/cookie.php -text
+ecrire/inc/distant.php -text
+ecrire/inc/lang_liste.php -text
+ecrire/inc/mini_nav.php -text
+ecrire/inc/minipres.php -text
+ecrire/inc/popularites.php -text
+ecrire/inc/sites_voir.php -text
+ecrire/inc/suivi_versions.php -text
+ecrire/inc/syndic.php -text
 ecrire/inc_headers.php -text
-ecrire/inc_lang_liste.php -text
-ecrire/inc_mini_nav.php -text
-ecrire/inc_minipres.php -text
 ecrire/inc_plugin.php -text
-ecrire/inc_popularites.php -text
-ecrire/inc_sites_voir.php -text
-ecrire/inc_suivi_versions.php -text
-ecrire/inc_syndic.php -text
 ecrire/inc_utils.php -text
 ecrire/lang/ecrire_br.php3 -text
 ecrire/lang/ecrire_cs.php3 -text
diff --git a/ecrire/exec/admin_plugin.php b/ecrire/exec/admin_plugin.php
index 3fca682d61eed0c53219897dd0b1e1806606ffc2..3bc2341b9b6d1c15f7a45dbce90df32e25bafce0 100644
--- a/ecrire/exec/admin_plugin.php
+++ b/ecrire/exec/admin_plugin.php
@@ -85,11 +85,11 @@ function ligne_plug($plug_file,&$plug_actifs,$last_actif = false,$surligne = fal
 		$s = "";
 		if ('O' == $plugok){
 			if ($id_input>0)
-				$s = "<a href='".generer_url_ecrire('admin_plugin',"monter=$plug_file")."'><img src='"._DIR_IMG_PACK."monter-16.png' style='border:0'></a>";
+				$s = "<a href='".generer_url_ecrire('admin_plugin',"monter=".urlencode($plug_file))."'><img src='"._DIR_IMG_PACK."monter-16.png' style='border:0'></a>";
 			$vals[] = $s;
 			$s = "";
 			if (!$last_actif)
-				$s = "<a href='".generer_url_ecrire('admin_plugin',"descendre=$plug_file")."'><img src='"._DIR_IMG_PACK."descendre-16.png' style='border:0'></a>";
+				$s = "<a href='".generer_url_ecrire('admin_plugin',"descendre=".urlencode($plug_file))."'><img src='"._DIR_IMG_PACK."descendre-16.png' style='border:0'></a>";
 		}
 		else{
 			$vals[] = $s;
diff --git a/ecrire/exec/sites.php b/ecrire/exec/sites.php
index a626ac1a7ef7011ef3636d71b3d0b27c936d8101..c5d1b8d437b4dda389a0cd18de56c66196b4d37d 100644
--- a/ecrire/exec/sites.php
+++ b/ecrire/exec/sites.php
@@ -626,7 +626,7 @@ function analyser_site($url) {
 
 		// Cherchons quand meme un backend
 		include_ecrire('inc_distant');
-		include_ecrire('feedfinder');
+		include_spip('inc/feedfinder');
 		$feeds = get_feed_from_url($url, $texte);
 		if (count($feeds)>1) {
 			spip_log("feedfinder.php :\n".join("\n", $feeds));
diff --git a/ecrire/inc_acces.php b/ecrire/inc/acces.php
similarity index 100%
rename from ecrire/inc_acces.php
rename to ecrire/inc/acces.php
diff --git a/ecrire/inc_admin.php b/ecrire/inc/admin.php
similarity index 100%
rename from ecrire/inc_admin.php
rename to ecrire/inc/admin.php
diff --git a/ecrire/inc_agenda.php b/ecrire/inc/agenda.php
similarity index 99%
rename from ecrire/inc_agenda.php
rename to ecrire/inc/agenda.php
index e1c010a826e398de25073c2f7262ed58437bc805..8efe41aed7412581e9ee2809e41b6b36729d86bb 100644
--- a/ecrire/inc_agenda.php
+++ b/ecrire/inc/agenda.php
@@ -12,7 +12,7 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-include_ecrire("inc_presentation"); // inclut inc_layer
+include_spip("inc/presentation"); // inclut inc_layer
 include_ecrire("inc_texte"); // inclut inc_filtre
 
 charger_generer_url();
diff --git a/ecrire/inc_ajax.php b/ecrire/inc/ajax.php
similarity index 100%
rename from ecrire/inc_ajax.php
rename to ecrire/inc/ajax.php
diff --git a/ecrire/inc_auteur_voir.php b/ecrire/inc/auteur_voir.php
similarity index 100%
rename from ecrire/inc_auteur_voir.php
rename to ecrire/inc/auteur_voir.php
diff --git a/ecrire/inc_auth_ldap.php b/ecrire/inc/auth_ldap.php
similarity index 100%
rename from ecrire/inc_auth_ldap.php
rename to ecrire/inc/auth_ldap.php
diff --git a/ecrire/inc_auth_spip.php b/ecrire/inc/auth_spip.php
similarity index 100%
rename from ecrire/inc_auth_spip.php
rename to ecrire/inc/auth_spip.php
diff --git a/ecrire/inc_boutons.php b/ecrire/inc/boutons.php
similarity index 100%
rename from ecrire/inc_boutons.php
rename to ecrire/inc/boutons.php
diff --git a/ecrire/inc_charsets.php b/ecrire/inc/charsets.php
similarity index 100%
rename from ecrire/inc_charsets.php
rename to ecrire/inc/charsets.php
diff --git a/ecrire/inc_config.php b/ecrire/inc/config.php
similarity index 100%
rename from ecrire/inc_config.php
rename to ecrire/inc/config.php
diff --git a/ecrire/inc_cookie.php b/ecrire/inc/cookie.php
similarity index 100%
rename from ecrire/inc_cookie.php
rename to ecrire/inc/cookie.php
diff --git a/ecrire/inc_cron.php b/ecrire/inc/cron.php
similarity index 100%
rename from ecrire/inc_cron.php
rename to ecrire/inc/cron.php
diff --git a/ecrire/inc_date.php b/ecrire/inc/date.php
similarity index 100%
rename from ecrire/inc_date.php
rename to ecrire/inc/date.php
diff --git a/ecrire/inc_diff.php b/ecrire/inc/diff.php
similarity index 100%
rename from ecrire/inc_diff.php
rename to ecrire/inc/diff.php
diff --git a/ecrire/inc_distant.php b/ecrire/inc/distant.php
similarity index 100%
rename from ecrire/inc_distant.php
rename to ecrire/inc/distant.php
diff --git a/ecrire/inc_extra.php b/ecrire/inc/extra.php
similarity index 100%
rename from ecrire/inc_extra.php
rename to ecrire/inc/extra.php
diff --git a/ecrire/feedfinder.php b/ecrire/inc/feedfinder.php
similarity index 100%
rename from ecrire/feedfinder.php
rename to ecrire/inc/feedfinder.php
diff --git a/ecrire/inc_filtres.php b/ecrire/inc/filtres.php
similarity index 100%
rename from ecrire/inc_filtres.php
rename to ecrire/inc/filtres.php
diff --git a/ecrire/inc_forum.php b/ecrire/inc/forum.php
similarity index 100%
rename from ecrire/inc_forum.php
rename to ecrire/inc/forum.php
diff --git a/ecrire/inc_getdocument.php b/ecrire/inc/getdocument.php
similarity index 100%
rename from ecrire/inc_getdocument.php
rename to ecrire/inc/getdocument.php
diff --git a/ecrire/inc_import.php b/ecrire/inc/import.php
similarity index 100%
rename from ecrire/inc_import.php
rename to ecrire/inc/import.php
diff --git a/ecrire/inc_invalideur.php b/ecrire/inc/invalideur.php
similarity index 100%
rename from ecrire/inc_invalideur.php
rename to ecrire/inc/invalideur.php
diff --git a/ecrire/inc_lang.php b/ecrire/inc/lang.php
similarity index 100%
rename from ecrire/inc_lang.php
rename to ecrire/inc/lang.php
diff --git a/ecrire/inc_lang_liste.php b/ecrire/inc/lang_liste.php
similarity index 100%
rename from ecrire/inc_lang_liste.php
rename to ecrire/inc/lang_liste.php
diff --git a/ecrire/inc_layer.php b/ecrire/inc/layer.php
similarity index 100%
rename from ecrire/inc_layer.php
rename to ecrire/inc/layer.php
diff --git a/ecrire/inc_logos.php b/ecrire/inc/logos.php
similarity index 100%
rename from ecrire/inc_logos.php
rename to ecrire/inc/logos.php
diff --git a/ecrire/inc_mail.php b/ecrire/inc/mail.php
similarity index 100%
rename from ecrire/inc_mail.php
rename to ecrire/inc/mail.php
diff --git a/ecrire/inc_math.php b/ecrire/inc/math.php
similarity index 100%
rename from ecrire/inc_math.php
rename to ecrire/inc/math.php
diff --git a/ecrire/inc_mini_nav.php b/ecrire/inc/mini_nav.php
similarity index 100%
rename from ecrire/inc_mini_nav.php
rename to ecrire/inc/mini_nav.php
diff --git a/ecrire/inc_minipres.php b/ecrire/inc/minipres.php
similarity index 100%
rename from ecrire/inc_minipres.php
rename to ecrire/inc/minipres.php
diff --git a/ecrire/inc_mots.php b/ecrire/inc/mots.php
similarity index 100%
rename from ecrire/inc_mots.php
rename to ecrire/inc/mots.php
diff --git a/ecrire/inc_ortho.php b/ecrire/inc/ortho.php
similarity index 100%
rename from ecrire/inc_ortho.php
rename to ecrire/inc/ortho.php
diff --git a/ecrire/inc_popularites.php b/ecrire/inc/popularites.php
similarity index 100%
rename from ecrire/inc_popularites.php
rename to ecrire/inc/popularites.php
diff --git a/ecrire/inc_presentation.php b/ecrire/inc/presentation.php
similarity index 100%
rename from ecrire/inc_presentation.php
rename to ecrire/inc/presentation.php
diff --git a/ecrire/inc_revisions.php b/ecrire/inc/revisions.php
similarity index 100%
rename from ecrire/inc_revisions.php
rename to ecrire/inc/revisions.php
diff --git a/ecrire/inc_rubriques.php b/ecrire/inc/rubriques.php
similarity index 100%
rename from ecrire/inc_rubriques.php
rename to ecrire/inc/rubriques.php
diff --git a/ecrire/inc_session.php b/ecrire/inc/session.php
similarity index 100%
rename from ecrire/inc_session.php
rename to ecrire/inc/session.php
diff --git a/ecrire/inc_signatures.php b/ecrire/inc/signatures.php
similarity index 100%
rename from ecrire/inc_signatures.php
rename to ecrire/inc/signatures.php
diff --git a/ecrire/inc_sites_voir.php b/ecrire/inc/sites_voir.php
similarity index 100%
rename from ecrire/inc_sites_voir.php
rename to ecrire/inc/sites_voir.php
diff --git a/ecrire/inc_suivi_versions.php b/ecrire/inc/suivi_versions.php
similarity index 100%
rename from ecrire/inc_suivi_versions.php
rename to ecrire/inc/suivi_versions.php
diff --git a/ecrire/inc_surligne.php b/ecrire/inc/surligne.php
similarity index 100%
rename from ecrire/inc_surligne.php
rename to ecrire/inc/surligne.php
diff --git a/ecrire/inc_syndic.php b/ecrire/inc/syndic.php
similarity index 100%
rename from ecrire/inc_syndic.php
rename to ecrire/inc/syndic.php
diff --git a/ecrire/inc_texte.php b/ecrire/inc/texte.php
similarity index 100%
rename from ecrire/inc_texte.php
rename to ecrire/inc/texte.php
diff --git a/ecrire/inc_visites.php b/ecrire/inc/visites.php
similarity index 100%
rename from ecrire/inc_visites.php
rename to ecrire/inc/visites.php
diff --git a/ecrire/inc_plugin.php b/ecrire/inc_plugin.php
index 9f9905f495a112d526e609fc6ecec149a0c0cce8..61cd363b33a1256fdd3ec9fa6816169796165fcf 100644
--- a/ecrire/inc_plugin.php
+++ b/ecrire/inc_plugin.php
@@ -68,18 +68,21 @@ function ecrire_plugin_actifs($plugin,$pipe_recherche=false){
 	// charger_plugins_fonctions.php
 	foreach(array('options','fonctions') as $charge){
 		$s = "";
+		$splugs = "";
 		if (is_array($infos)){
 			foreach($infos as $plug=>$info){
+				// definir le plugin, donc le path avant l'include du fichier options
+				// permet de faire des include_ecrire pour attraper un inc_ du plugin
+				if ($charge=='options')
+					$splugs .= '$GLOBALS[\'plugins\'][]=\''.$plug.'\';'."\n";
 				if (isset($info[$charge])){
 					foreach($info[$charge] as $file)
 						$s .= "include_once _DIR_PLUGINS.'$plug/".trim($file)."';\n";
 				}
-				if ($charge=='options')
-					$s .= '$GLOBALS[\'plugins\'][]=\''.$plug.'\';'."\n";
 			}
 		}
 		ecrire_fichier(_DIR_SESSIONS."charger_plugins_$charge.php",
-			$start_file . $s . $end_file);
+			$start_file . $splugs . $s . $end_file);
 	}
 
 	if (is_array($infos)){
@@ -193,8 +196,8 @@ function ordonne_plugin(){
 	foreach($liste as $plug){
 		$index = $i;
 		$i = $i+2;
-		if ($_GET['monter']==$plug) $index = $index-3;
-		if ($_GET['descendre']==$plug) $index = $index+3;
+		if (urldecode($_GET['monter'])==$plug) $index = $index-3;
+		if (urldecode($_GET['descendre'])==$plug) $index = $index+3;
 		$liste_triee[$index] = $plug;
 	}
 	ksort($liste_triee);
diff --git a/ecrire/inc_utils.php b/ecrire/inc_utils.php
index 629ddd319c5f9ae6fd0442936ffebc1e4e472a02..94effb5b1bc6d3d0de085e3d05349ec0613c8c69 100644
--- a/ecrire/inc_utils.php
+++ b/ecrire/inc_utils.php
@@ -111,19 +111,21 @@ function include_spip($f, $include = true) {
 	AND !$s = find_in_path($f . '.php3')
 	// sinon, le fichier existe dans le repertoire ecrire ?
 	AND !is_readable($s = _DIR_INCLUDE . $f . '.php')
-	AND !is_readable($s = _DIR_INCLUDE . $f . '.php3')
-)
+	AND !is_readable($s = _DIR_INCLUDE . $f . '.php3'))
 		return $GLOBALS['included_files'][$f] = false;
 
 	// deja charge (chemin complet) ?
 	if (isset($GLOBALS['included_files'][$s]))
 		return $GLOBALS['included_files'][$f] = $GLOBALS['included_files'][$s];
+	else
+		$GLOBALS['included_files'][$f] = $GLOBALS['included_files'][$s] = $s;
 
 	// alors on le charge (sauf si on ne voulait que son chemin)
 	if ($include) {
 		include($s);
 	}
-	return $GLOBALS['included_files'][$f] = $GLOBALS['included_files'][$s] = $s;
+
+	return $s;
 }
 
 // un pipeline est lie a une action et une valeur
diff --git a/ecrire/index.php b/ecrire/index.php
index ef3616e822ea8a3f18a44e89bce7781ead6c6957..5eba573bd4910c3d5787eec9ce7181754b23129b 100644
--- a/ecrire/index.php
+++ b/ecrire/index.php
@@ -121,7 +121,6 @@ topmargin='0' leftmargin='0' marginwidth='0' marginheight='0' frameborder='0'" .
 	($spip_lang_rtl ? " dir='rtl'" : ""));
 
 // charger l'affichage minimal et initialiser a la langue par defaut
-
 include_ecrire("inc_minipres");
 
 //  si la langue est specifiee par cookie alors ...