diff --git a/ecrire/base/db_mysql.php b/ecrire/base/db_mysql.php
index e9d8599550636adc11f1f03e0e7b32d40be6acd6..9c1637f4ae96e3c4e931882d8126be94f6f50d9d 100644
--- a/ecrire/base/db_mysql.php
+++ b/ecrire/base/db_mysql.php
@@ -105,11 +105,13 @@ function spip_mysql_trace($query, $start, $result)
 function spip_mysql_timing($m1, $m2, $query, $result)
 {
 	static $tt = 0;
+	global $tableau_des_temps;
+
 	list($usec, $sec) = explode(" ", $m1);
 	list($usec2, $sec2) = explode(" ", $m2);
  	$dt = $sec2 + $usec2 - $sec - $usec;
 	$tt += $dt;
-	echo "<small>", htmlentities($query), " -> <span style='color: blue'>", sprintf("%3f", $dt),"</span> (", $tt, ")</small> $result<p>\n";
+	$tableau_des_temps[] = array(sprintf("%3f", $dt), "$query -> $result");
 }
 
 // fonction appelant la precedente  specifiquement pour l'espace public
diff --git a/ecrire/index.php b/ecrire/index.php
index b6c27faa2662621665045f1beb7680b85be440e6..1fab08e721d2d2d94c52f9fa52b84a2f2b1e82bd 100644
--- a/ecrire/index.php
+++ b/ecrire/index.php
@@ -170,4 +170,10 @@ $var_f = charger_fonction($exec);
 
 // Z'y va
 $var_f();
+
+// avec &var_profile=1 on a le tableau de mesures SQL
+if (count($tableau_des_temps)) {
+	include_spip('public/debug');
+	chrono_requete($tableau_des_temps);
+}
 ?>
diff --git a/ecrire/public.php b/ecrire/public.php
index 0c04b1c59ae8b1f22c4eec12e4998225c7093f1b..1f1a0a3466aee15a58c7ae052d47fcb56ab8c37f 100644
--- a/ecrire/public.php
+++ b/ecrire/public.php
@@ -112,7 +112,7 @@ if (defined('_INC_PUBLIC')) {
 	// Aller chercher la page
 	//
 
-	$tableau_des_erreurs = array();
+	$tableau_des_erreurs = 	$tableau_des_temps = array();
 	$assembler = charger_fonction('assembler', 'public');
 	$page = $assembler($fond);
 
@@ -211,8 +211,7 @@ if (defined('_INC_PUBLIC')) {
 		}
 	}
 	
-  if($html) 
-    $page = analyse_js_ajoutee($page);
+	if ($html) $page = analyse_js_ajoutee($page);
   
 	// Passer la main au debuggueur le cas echeant
 	if ($var_mode == 'debug') {
@@ -237,6 +236,11 @@ if (defined('_INC_PUBLIC')) {
 	// cf. public/assembler.php)
 	echo pipeline('affichage_final', $page['texte']);
 
+	if (count($tableau_des_temps) AND $affiche_boutons_admin) {
+		include_spip('public/debug');
+		chrono_requete($tableau_des_temps);
+	}
+
 	// Gestion des statistiques du site public
 	if (($GLOBALS['meta']["activer_statistiques"] != "non")
 	  AND $spip_compter_visites!='non') {
diff --git a/ecrire/public/debug.php b/ecrire/public/debug.php
index 7e4cab5a6a691e570850b922910f20609e536454..32974d4a655f156eb76c3abdc05d100d9f65e8ad 100644
--- a/ecrire/public/debug.php
+++ b/ecrire/public/debug.php
@@ -45,7 +45,7 @@ function afficher_debug_contexte($env) {
 // et en mode validation (fausse erreur "double occurrence insert_head")
 // ajouter &var_mode=debug pour voir les erreurs et en parler sur spip@rezo.net
 // http://doc.spip.org/@affiche_erreurs_page
-function affiche_erreurs_page($tableau_des_erreurs) {
+function affiche_erreurs_page($tableau_des_erreurs, $message='') {
 
 	if ($GLOBALS['exec']=='valider_xml') return '';
 	$GLOBALS['bouton_admin_debug'] = true;
@@ -54,10 +54,10 @@ function affiche_erreurs_page($tableau_des_erreurs) {
 		$res .= "<li>" .$err[0] . ", <small>".$err[1]."</small><br /></li>\n";
 	}
 	return "\n<div id='spip-debug' style='"
-	. "position: absolute; top: 20px; left: 20px; z-index: 1000;"
-	. "filter:alpha(opacity=60); -moz-opacity:0.6; opacity: 0.6;"
+	. "position: absolute; top: 90px; left: 10px; z-index: 1000;"
+	. "filter:alpha(opacity=95); -moz-opacity:0.9; opacity: 0.95;"
 	. "'><ul><li>"
-	. _T('zbug_erreur_squelette')
+	  . ($message ? $message : _T('zbug_erreur_squelette'))
 ## aide locale courte a ecrire, avec lien vers une grosse page de documentation
 #		aide('erreur_compilation'),
 	. "<br /></li>"
@@ -66,6 +66,17 @@ function affiche_erreurs_page($tableau_des_erreurs) {
 	. "</ul></ul></div>";
 }
 
+function chrono_requete($tableau_des_temps)
+{
+	foreach ($tableau_des_temps as $key => $row) {
+		  $t[$key]  = $row[0];
+		  $q[$key] = $row[1];
+		}
+	array_multisort($t, SORT_DESC, $q, $tableau_des_temps);
+	echo affiche_erreurs_page($tableau_des_temps,
+				  _T('zbug_profile', array('time'=>'')));
+}
+
 //
 // Si une boucle cree des soucis, on peut afficher la requete fautive
 // avec son code d'erreur