diff --git a/ecrire/base/admin_repair.php b/ecrire/base/admin_repair.php
index b98448514cda7524b6210ff7c7a35b0650430155..705d2dc8ff389c2100112c41af729e7e8e039ac4 100644
--- a/ecrire/base/admin_repair.php
+++ b/ecrire/base/admin_repair.php
@@ -49,6 +49,5 @@ function base_admin_repair_dist() {
 	}
 	include_spip('inc/minipres');
 	echo minipres(_T('texte_tentative_recuperation'), $res);
-	exit;
 }
 ?>
diff --git a/ecrire/exec/admin_repair.php b/ecrire/exec/admin_repair.php
index f1743e306dd08892d4c25d0d14f70f62a2037e4e..18276f1daa4a152d86158a417330585a09be0fbf 100644
--- a/ecrire/exec/admin_repair.php
+++ b/ecrire/exec/admin_repair.php
@@ -15,13 +15,11 @@ 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
+ * la table spip_auteurs est en panne : index.php n'appelle donc pas
  * inc_auth ; seule l'authentification ftp est exigee
  *
  */
 
-$GLOBALS['connect_statut'] = '0minirezo';
-$GLOBALS['connect_toutes_rubriques']= true;
 include_spip('base/db_mysql');
 
 // http://doc.spip.org/@exec_admin_repair_dist
diff --git a/ecrire/inc/admin.php b/ecrire/inc/admin.php
index 67ff75c42349d30061c86366ca78a3d8d85635fb..6305e3ea1de7c11fed0973ee57b14e2b7b3e3b8d 100644
--- a/ecrire/inc/admin.php
+++ b/ecrire/inc/admin.php
@@ -81,7 +81,7 @@ function debut_admin($script, $action='', $commentaire='') {
 
 	// Si on est un super-admin, un bouton de validation suffit
 	// sauf dans les cas destroy
-	if (autoriser('webmestre')
+	if ((autoriser('webmestre') OR $script === 'admin_repair')
 	AND $script != 'delete_all') {
 		if (_request('validation_admin') == $signal) {
 			spip_log ("Action super-admin: $action");
diff --git a/ecrire/public.php b/ecrire/public.php
index 23cb8b8e0c8176d7eb7cb75a18001748f2922b46..c20b5f28a090eb0dbe8a7867177d37366a23cf56 100644
--- a/ecrire/public.php
+++ b/ecrire/public.php
@@ -204,8 +204,7 @@ if (defined('_INC_PUBLIC')) {
 			// en cas d'erreur lors du eval,
 			// la memoriser dans le tableau des erreurs
 			// On ne revient pas ici si le nb d'erreurs > 4
-			if ($res === false AND $affiche_boutons_admin
-			AND $auteur_session['statut'] == '0minirezo') {
+			if ($res === false AND $affiche_boutons_admin) {
 				include_spip('public/debug');
 				erreur_squelette(_T('zbug_erreur_execution_page'));
 			}
diff --git a/ecrire/public/assembler.php b/ecrire/public/assembler.php
index cbb62ab8676a825cf2e2eb3f6f6124e8b5d7939e..5a516c72f560726d435b366a2cb3281b3780675b 100644
--- a/ecrire/public/assembler.php
+++ b/ecrire/public/assembler.php
@@ -43,10 +43,11 @@ function public_assembler_dist($fond) {
 		reponse_confirmation($_GET['var_confirm']);
 	}
 
-	//  refus du debug si l'admin n'est pas connecte
+	//  forcer la connexion si on veut le debusqueur
 	if ($var_mode=='debug') {
-		if ($auteur_session['statut'] == '0minirezo')
-			spip_log('debug !');
+		include_spip('inc/autoriser');
+		if (autoriser('configurer'))
+			spip_log($auteur_session['nom'] . " ausculte $fond");
 		else {
 			include_spip('inc/headers');
 			redirige_par_entete(generer_url_public('login',
diff --git a/ecrire/public/debug.php b/ecrire/public/debug.php
index 05ee4eb2b05d673ed3fdfc7029c0937488ea6726..305cf4d947a8cd7e9c192abc8efbf72209cf3e28 100644
--- a/ecrire/public/debug.php
+++ b/ecrire/public/debug.php
@@ -145,7 +145,6 @@ function erreur_squelette($message='', $lieu='') {
 	// Eviter les boucles infernales
 	if (++$runs > 4) {
 		if ($_COOKIE['spip_admin'] OR
-		($auteur_session['statut'] == '0minirezo') OR
 		($GLOBALS['var_mode'] == 'debug')) {
 			include_spip('inc/minipres');