diff --git a/ecrire/inc_db_mysql.php3 b/ecrire/inc_db_mysql.php3
index 5e2625810257297e08859ad5cfee4ef63e181fe1..0bd5586b076d79f91bb4df158dbd028e25db71ac 100644
--- a/ecrire/inc_db_mysql.php3
+++ b/ecrire/inc_db_mysql.php3
@@ -74,12 +74,12 @@ function spip_mysql_select($select, $from, $where,
 			   $sousrequete, $having,
 			   $table, $id, $serveur) {
 
-	$q = "\nFROM " . join(",\n\t", $from)
-	  . ($where ? ("\nWHERE " . join("\n\tAND ", $where)) : '')
-	  . ($groupby ? "\nGROUP BY $groupby" : '')
-	  . ($having  ? "\nHAVING $having" : '')
-	  . ($orderby ? ("\nORDER BY " . join(", ", $orderby)) : '')
-	  . ($limit ? "\nLIMIT $limit" : '');
+	$q = ($from  ?("\nFROM " . join(",\n\t", $from)) : '')
+	  .  ($where ? ("\nWHERE " . join("\n\tAND ", $where)) : '')
+	  .  ($groupby ? "\nGROUP BY $groupby" : '')
+	  .  ($having  ? "\nHAVING $having" : '')
+	  .  ($orderby ? ("\nORDER BY " . join(", ", $orderby)) : '')
+	  .  ($limit ? "\nLIMIT $limit" : '');
 
 	if (!$sousrequete)
 		$q = " SELECT ". join(", ", $select) . $q;
@@ -97,7 +97,9 @@ function spip_mysql_select($select, $from, $where,
 
 	if (!($res = @spip_query($q))) {
 		include_ecrire('inc_debug_sql.php3');
-		echo erreur_requete_boucle($q, $id, $table);
+		erreur_requete_boucle($q, $id, $table,
+				      spip_sql_errno(),
+				      spip_sql_error());
 	}
 #	 spip_log($serveur . spip_num_rows($res) . $q);
 	return $res;
diff --git a/ecrire/inc_debug_sql.php3 b/ecrire/inc_debug_sql.php3
index 8138dcab1ca1a1f8c34476841657fd497206e38a..f0561c888aba9e326851971702595941afc9000f 100644
--- a/ecrire/inc_debug_sql.php3
+++ b/ecrire/inc_debug_sql.php3
@@ -67,13 +67,10 @@ function affiche_erreurs_page($tableau_des_erreurs) {
 // Si une boucle cree des soucis, on peut afficher la requete fautive
 // avec son code d'erreur
 //
-function erreur_requete_boucle($query, $id_boucle, $type) {
+function erreur_requete_boucle($query, $id_boucle, $type, $erreur, $errno) {
 
 	$GLOBALS['bouton_admin_debug'] = true;
 
-	// Recuperer le numero d'erreur
-	$errno = spip_sql_errno();
-	$erreur = spip_sql_error();
 	if (eregi('err(no|code):?[[:space:]]*([0-9]+)', $erreur, $regs))
 		$errno = $regs[2];
 	else if (($errno == 1030 OR $errno <= 1026)