diff --git a/.gitattributes b/.gitattributes
index ee56b06f91992548743efd614af6cc2e243eda3e..336afb385316674fa5b93fdedadcd2864beae2ba 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -316,6 +316,7 @@ ecrire/inc_rubriques_edit.php -text
 ecrire/inc_sites_edit.php -text
 ecrire/inc_sites_tous.php -text
 ecrire/inc_spip_action_purger.php -text
+ecrire/inc_spip_action_test_dirs.php -text
 ecrire/inc_spip_cal.php -text
 ecrire/inc_spip_image.php -text
 ecrire/inc_spip_style.php -text
diff --git a/ecrire/inc_acces.php3 b/ecrire/inc_acces.php3
index 430fdb15327f8f2eb9c04741b391425b9bf62403..54047752367e49f96938872a099eb47d38bfe1dd 100644
--- a/ecrire/inc_acces.php3
+++ b/ecrire/inc_acces.php3
@@ -126,7 +126,7 @@ function ecrire_acces() {
 		ecrire_logins($fichier, $logins);
 		fclose($fichier);
 	} else {
-		redirige_par_entete(generer_url_public("spip_test_dirs"));
+		redirige_par_entete(generer_url_public('spip_action.php'), '?action=test_dirs');
 	}
 
 	$query = "SELECT login, htpass FROM spip_auteurs WHERE statut = '0minirezo'";
diff --git a/ecrire/inc_flock.php3 b/ecrire/inc_flock.php3
index c8d2f515a47db5dcb915c8f45ed7defe2f58f15d..afdbb416fa651e5d428ccb922cbbd6a078597814 100644
--- a/ecrire/inc_flock.php3
+++ b/ecrire/inc_flock.php3
@@ -150,7 +150,7 @@ function creer_repertoire($base, $subdir) {
 		@unlink("$path/.test");
 	}
 	if ($ok) return "$subdir/";
-	redirige_par_entete(generer_url_public('spip_test_dirs'));
+	redirige_par_entete(generer_url_public('spip_action.php'), '?action=test_dirs');
 }
 
 ?>
diff --git a/ecrire/inc_getdocument.php3 b/ecrire/inc_getdocument.php3
index 1d66679732acd1ac973079fd3e3c230faa448c8b..6e9b4ef63c7a6d53b3000708d724e044e0c6e0b3 100644
--- a/ecrire/inc_getdocument.php3
+++ b/ecrire/inc_getdocument.php3
@@ -85,8 +85,7 @@ function deplacer_fichier_upload($source, $dest) {
 		if ($f) {
 			fclose ($f);
 		} else {
-		  redirige_par_entete(generer_url_public('spip_test_dirs'),
-				      "?test_dir=". dirname($dest));
+			redirige_par_entete(generer_url_public('spip_action.php'), "?action=test_dirs&test_dir=". dirname($dest));
 		}
 		@unlink($dest);
 	}
diff --git a/ecrire/inc_install.php b/ecrire/inc_install.php
index 49d6931bb410ebc8ac47514047aa4cc79948eae3..d4d3b26ef830c5417b873f733610cb8dd8c98dfd 100644
--- a/ecrire/inc_install.php
+++ b/ecrire/inc_install.php
@@ -491,23 +491,26 @@ function install_()
 
 	$menu_langues = menu_langues('var_lang_ecrire');
 	if (!$menu_langues)
-	  redirige_par_entete(generer_url_public("spip_test_dirs"));
+		redirige_par_entete(generer_url_public('spip_action.php'), '?action=test_dirs');
 	else {
 		install_debut_html();
 	
-		echo "<p align='center'><img src='" . _DIR_IMG_PACK . "logo-spip.gif'></p>";
-		
-		echo "<p style='text-align: center; font-family: Verdana,Arial,Sans,sans-serif; font-size: 10px;'>";
-		echo info_copyright();
-		echo "</p>";
-
-		echo "<p>" . _T('install_select_langue');
-
-		echo "<p><div align='center'>".$menu_langues."</div>";
-
-		echo "<p><form action='" . generer_url_public("spip_test_dirs","") . "' method='get'>";
-		echo "<DIV align='$spip_lang_right'><INPUT TYPE='submit' CLASS='fondl'  VALUE='"._T('bouton_suivant')." >>'>";
-		echo "</FORM>";
+		echo "<p align='center'><img src='" . _DIR_IMG_PACK . "logo-spip.gif'></p>",
+		  "<p style='text-align: center; font-family: Verdana,Arial,Sans,sans-serif; font-size: 10px;'>",
+		 info_copyright(),
+		  "</p>",
+		  "<p>" . _T('install_select_langue'),
+		  "<p><div align='center'>",
+		  $menu_langues,
+		  "</div>",
+		  "<p><form action='",
+		  generer_url_public('spip_action.php'),
+		  "'>",
+		  '<input type="hidden" name="action" value="test_dirs" />',
+		  "<div align='$spip_lang_right'><input type='submit' class='fondl'  VALUE='",
+		  _T('bouton_suivant'),
+		  " >>'>",
+		  "</form>";
 		install_fin_html();
 	}
 }
diff --git a/ecrire/inc_meta.php3 b/ecrire/inc_meta.php3
index debec634618ebc99b5216c5f6bda365c7d872fed..5901b9d1fd94f928ffd5749d4f6c5ec1cd743855 100644
--- a/ecrire/inc_meta.php3
+++ b/ecrire/inc_meta.php3
@@ -52,7 +52,7 @@ function ecrire_metas() {
 		  echo "<h4 font color=red>",
 		    _T('texte_inc_meta_1', array('fichier' => $file)),
 		    " <a href='",
-		    generer_url_public("spip_test_dirs"),
+		    generer_url_public('spip_action.php', 'action=test_dirs'),
 		    "'>",
 		    _T('texte_inc_meta_2'),
 		    "</a> ",
diff --git a/ecrire/inc_session.php3 b/ecrire/inc_session.php3
index 7cde75a485d2519b9a76a26983895d170c8305f2..265465a1d58c4e52984b6fd014ed21089aedaeaa 100644
--- a/ecrire/inc_session.php3
+++ b/ecrire/inc_session.php3
@@ -63,7 +63,7 @@ function ajouter_session($auteur, $id_session) {
 		fputs($f, $texte);
  		fclose($f);
 	} else {
-	  redirige_par_entete(generer_url_public('spip_test_dirs'));
+		redirige_par_entete(generer_url_public('spip_action.php'), '?action=test_dirs');
 	}
 }
 
diff --git a/spip_test_dirs.php3 b/ecrire/inc_spip_action_test_dirs.php
similarity index 94%
rename from spip_test_dirs.php3
rename to ecrire/inc_spip_action_test_dirs.php
index bc589bddd3016c99d47bbd2d0bffd430002df82f..3a3c133ea28a0ebe38472810bf755eede6abe9a7 100644
--- a/spip_test_dirs.php3
+++ b/ecrire/inc_spip_action_test_dirs.php
@@ -34,7 +34,7 @@ function test_ecrire($my_dir) {
 // rajouter celui passer dans l'url ou celui du source (a l'installation)
 //
 
-function spip_test_dirs_dist()
+function spip_action_test_dirs_dist()
 {
   global $test_dir, $test_dirs;
 
@@ -93,7 +93,8 @@ if ($bad_dirs OR $absent_dirs) {
 	}
 
 	$res = "<p>" . $continuer  . $res . aide ("install0") . "</p>" .
-	  "<form action='" . generer_url_public('spip_test_dirs') . "'>" .
+	  "<form action='" . generer_url_public('spip_action.php') . "'>" .
+	   "<input type='hidden' name='action' value='test_dirs' />" .
 	  (!$test_dir ? "" : 
 	   "<input type='hidden' name='test_dir' value='$test_dir' />") .
 	  "<DIV align='right'><input type='submit' class='fondl' value='". 
@@ -108,7 +109,4 @@ if ($bad_dirs OR $absent_dirs) {
 		header("Location: " . _DIR_RESTREINT_ABS);
  }
 }
-
-spip_test_dirs_dist();
-
 ?>