diff --git a/ecrire/req/pg.php b/ecrire/req/pg.php
index a7af6689d2cc22f481e7702a2f0f875b2400bede..f3c117b4d35f58497f3236ea6e72414e99b853a7 100644
--- a/ecrire/req/pg.php
+++ b/ecrire/req/pg.php
@@ -98,7 +98,7 @@ $GLOBALS['spip_pg_functions_1'] = array(
 
 // Par ou ca passe une fois les traductions faites
 // http://doc.spip.org/@spip_pg_trace_query
-function spip_pg_trace_query($query, $serveur='',$requeter=true)
+function spip_pg_trace_query($query, $serveur='')
 {
 	$connexion = $GLOBALS['connexions'][$serveur ? $serveur : 0];
 	$prefixe = $connexion['prefixe'];
@@ -274,7 +274,7 @@ function spip_pg_select($select, $from, $where='',
 	    $having = join("\n\tAND ", array_map('calculer_pg_where', $having));
 	}
 	$from =  spip_pg_from($from, $prefixe);
-	$q =  "SELECT ". $select
+	$query =  "SELECT ". $select
 	  . (!$from ? '' : "\nFROM $from")
 	  . (!$where ? '' : ("\nWHERE " . (!is_array($where) ? calculer_pg_where($where) : (join("\n\tAND ", array_map('calculer_pg_where', $where))))))
 	  . spip_pg_groupby($groupby, $from, $select)
@@ -288,12 +288,15 @@ function spip_pg_select($select, $from, $where='',
 
 	if ($requeter && $GLOBALS['var_mode'] == 'debug') {
 		include_spip('public/debug');
-		boucle_debug_requete($q);
+		boucle_debug_requete($query);
 	}
 
-	if (!($res = spip_pg_trace_query($q, $serveur, $requeter))) {
+	// renvoyer la requete inerte si demandee
+	if (!$requeter) return $query;
+	
+	if (!($res = spip_pg_trace_query($query, $serveur))) {
 	  include_spip('public/debug');
-	  erreur_requete_boucle($q, 0, 0);
+	  erreur_requete_boucle($query, 0, 0);
 	}
 
 	return $res;
@@ -517,13 +520,14 @@ function spip_pg_fetch($res, $t='', $serveur='',$requeter=true) {
 	if ($res) $res = pg_fetch_array($res, NULL, PGSQL_ASSOC);
 	return $res;
 }
- 
+
 // http://doc.spip.org/@spip_pg_countsel
 function spip_pg_countsel($from = array(), $where = array(),
-			  $groupby=array(), $limit='', $having = array(), $serveur='',$requeter=true)
+			  $groupby=array(), $limit='', $sousrequete = '', 
+			  $having = array(), $serveur='',$requeter=true) 
 {
 	$r = spip_pg_select('COUNT(*)', $from, $where,
-			    $groupby, '', $limit, $sousrequete, $having, '','', $serveur, $requeter);
+			    $groupby, '', $limit, $having, $serveur, $requeter);
 	if ($r && $requeter) list($r) = pg_fetch_array($r, NULL, PGSQL_NUM);
 	return $r;
 }
@@ -546,10 +550,14 @@ function spip_pg_delete($table, $where='', $serveur='',$requeter=true) {
 	$link = $connexion['link'];
 	$db = $connexion['db'];
 	if ($prefixe) $table = preg_replace('/^spip/', $prefixe, $table);
-	return spip_pg_trace_query(
-			  calculer_pg_expression('DELETE FROM', $table, ',')
-			. calculer_pg_expression('WHERE', $where, 'AND'), 
-			$serveur, $requeter);
+	
+	$query = calculer_pg_expression('DELETE FROM', $table, ',')
+			. calculer_pg_expression('WHERE', $where, 'AND');
+			
+	// renvoyer la requete inerte si demandee
+	if (!$requeter) return $query;
+	
+	return spip_pg_trace_query($query, $serveur);
 }
 
 // http://doc.spip.org/@spip_pg_insert
@@ -611,11 +619,14 @@ function spip_pg_update($table, $champs, $where='', $desc='', $serveur='',$reque
 		$set[] = $champ . '=' . $val; 
 	}
 
-	return spip_pg_trace_query(
-		  calculer_pg_expression('UPDATE', $table, ',')
+	$query = calculer_pg_expression('UPDATE', $table, ',')
 		. calculer_pg_expression('SET', $set, ',')
-		. calculer_pg_expression('WHERE', $where, 'AND'), 
-		$serveur, $requeter);
+		. calculer_pg_expression('WHERE', $where, 'AND');
+		
+	// renvoyer la requete inerte si demandee
+	if (!$requeter) return $query;
+	
+	return spip_pg_trace_query($query, $serveur);
 }
 
 // idem, mais les valeurs sont des constantes a mettre entre apostrophes