diff --git a/ecrire/admin_repair.php3 b/ecrire/admin_repair.php3
index 31abd3ad9f604f82cfa1b0bbdd14c0d320f12c8e..6e6b5935f6923ab773c55417cff97a5fa761be8c 100644
--- a/ecrire/admin_repair.php3
+++ b/ecrire/admin_repair.php3
@@ -10,17 +10,5 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-/*
- * REMARQUE IMPORTANTE : SECURITE
- * Ce systeme de reparation doit pouvoir fonctionner meme si
- * la table spip_auteurs est en panne : on n'appelle donc pas
- * inc_auth ; seule l'authentification ftp est exigee
- *
- */
-
-include ("inc_version.php3");
-$GLOBALS['connect_statut'] = '0minirezo';
-$var_f = include_fonction($SCRIPT_NAME);
-$var_f();
-
+include ("inc.php3");
 ?>
diff --git a/ecrire/inc.php3 b/ecrire/inc.php3
index d258bbe1fd3b31e7ab97e1460e449fedd4f0609b..d37084d8601da68be6c3b2a858126d3bbfae8c7d 100644
--- a/ecrire/inc.php3
+++ b/ecrire/inc.php3
@@ -12,11 +12,14 @@
 
 if (!defined('_ECRIRE_INC_VERSION')) include ("inc_version.php3");
 
-include_ecrire ("inc_session");
-include_ecrire('inc_cookie');
-
-$var_f = include_fonction('auth');
-if (!$var_f()) exit;
+if (autoriser_sans_cookie($SCRIPT_NAME))
+	unset($GLOBALS['_COOKIE']);
+else {
+	include_ecrire ("inc_session");
+	include_ecrire('inc_cookie');
+	$var_f = include_fonction('auth');
+	if (!$var_f()) exit;
+ } 
 
 //
 // Preferences de presentation
diff --git a/ecrire/inc_admin_repair.php b/ecrire/inc_admin_repair.php
index 98cf428e81301f439c3258d7d22c706c8f6231a2..a53081ab71716dfeefb8967729c0870264c46285 100644
--- a/ecrire/inc_admin_repair.php
+++ b/ecrire/inc_admin_repair.php
@@ -12,6 +12,16 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
+/*
+ * REMARQUE IMPORTANTE : SECURITE
+ * Ce systeme de reparation doit pouvoir fonctionner meme si
+ * la table spip_auteurs est en panne : on n'appelle donc pas
+ * inc_auth ; seule l'authentification ftp est exigee
+ *
+ */
+
+$GLOBALS['connect_statut'] = '0minirezo';
+
 include_ecrire ("inc_admin");
 include_ecrire ("inc_texte");
 include_ecrire ("inc_minipres");
diff --git a/ecrire/inc_install.php b/ecrire/inc_install.php
index baabbc6149c2acd631983c55a396b2a359399e0d..41981bfcdb9aa7429095d75fe3729ec615e8b990 100644
--- a/ecrire/inc_install.php
+++ b/ecrire/inc_install.php
@@ -14,6 +14,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 include_ecrire ("inc_minipres");
 include_ecrire ("inc_base");
+define("_ECRIRE_INSTALL", "1");
 define('_FILE_TMP', '_install');
 
 function install()
diff --git a/ecrire/inc_utils.php b/ecrire/inc_utils.php
index cfc149823cd9cc966661d0578317e5a4abd49e23..8b8173d7b924524eb74e64956913a9ff82208716 100644
--- a/ecrire/inc_utils.php
+++ b/ecrire/inc_utils.php
@@ -581,6 +581,15 @@ function charger_plugins($plugins) {
 #var_dump($plugins);var_dump($spip_pipeline);var_dump($spip_matrice);exit;
 }
 
+// predicat sur les scripts de ecrire qui n'authentifient pas par cookie
+
+function autoriser_sans_cookie($nom)
+{
+  static $autsanscookie = array('aide_index', 'install', 'admin_repair');
+  $nom = preg_replace('/.php[3]?$/', '', basename($nom));
+  return in_array($nom, $autsanscookie);
+}
+
 // Cette fonction charge le bon inc-urls selon qu'on est dans l'espace
 // public ou prive, la presence d'un (old style) inc-urls.php3, etc.
 function charger_generer_url() {
diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3
index 592c6d35b9fac6f375175e6ba565a0f136f1694d..257eb18e57492b2d29e66a603bac3cf86f0f3700 100644
--- a/ecrire/inc_version.php3
+++ b/ecrire/inc_version.php3
@@ -288,7 +288,6 @@ $connect_statut = '';
 $hash_recherche = '';
 $hash_recherche_strict = '';
 
-
 //
 // Capacites php (en fonction de la version)
 //
@@ -394,9 +393,8 @@ $spip_lang = $langue_site;
 // Que faire si Spip n'est pas installe... sauf si justement on l'installe!
 //
 if (!(_FILE_CONNECT
-OR defined('_ECRIRE_INSTALL')
 OR defined('_TEST_DIRS')
-OR defined('_ECRIRE_AIDE'))) {
+OR autoriser_sans_cookie($SCRIPT_NAME))) {
 
 	include_ecrire('inc_upgrade');
 	info_install();
diff --git a/ecrire/install.php3 b/ecrire/install.php3
index 34a8a06c5dcdbc3946e22c25f981b4775a40b75e..6e6b5935f6923ab773c55417cff97a5fa761be8c 100644
--- a/ecrire/install.php3
+++ b/ecrire/install.php3
@@ -10,8 +10,5 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
-define("_ECRIRE_INSTALL", "1");
-include ("inc_version.php3");
-$var_f = include_fonction($SCRIPT_NAME);
-$var_f();
+include ("inc.php3");
 ?>