diff --git a/ecrire/articles.php3 b/ecrire/articles.php3
index 11044288e647123f90eaf341b4cc6d727738fce9..be4ed4ebe7b05a7c91862c7fb42fb8298ba270a0 100644
--- a/ecrire/articles.php3
+++ b/ecrire/articles.php3
@@ -31,7 +31,7 @@ if ($id_article==0) {
 
 		$forums_publics = substr(lire_meta('forums_publics'),0,3);
 
-		$id_article = spip_insert("spip_articles",
+		$id_article = spip_abstract_insert("spip_articles",
 					     "(id_rubrique, statut, date, accepter_forum, lang, langue_choisie)", 
 					     "($id_rubrique, 'prepa', NOW(), '$forums_publics', '$langue_new', '$langue_choisie_new')");
 
@@ -945,7 +945,7 @@ debut_cadre_enfonce("auteur-24.gif", false, "", $bouton._T('texte_auteurs').aide
 if ($creer_auteur AND $connect_statut=='0minirezo'){
 	$creer_auteur = addslashes($creer_auteur);
 
-	$nouv_auteur = spip_insert('spip_auteurs', "(nom, statut)",
+	$nouv_auteur = spip_abstract_insert('spip_auteurs', "(nom, statut)",
 				      "(\"$creer_auteur\", '1comite')");
 	$ajout_auteur = true;
 }
diff --git a/ecrire/auteur_infos.php3 b/ecrire/auteur_infos.php3
index 02d960824671c16beae63fcb3a9247d52d1e62f2..a7ce34c67e5b5fc5cf8ef6be967dc6c36eb7f609 100644
--- a/ecrire/auteur_infos.php3
+++ b/ecrire/auteur_infos.php3
@@ -183,7 +183,7 @@ if ($statut) { // si on poste un statut, c'est qu'on modifie une fiche auteur
 	// l'entrer dans la base
 	if (!$echec) {
 		if (!$auteur['id_auteur']) { // creation si pas d'id
-		  $auteur['id_auteur'] = spip_insert("spip_auteurs", "(nom)", "('temp')");
+		  $auteur['id_auteur'] = spip_abstract_insert("spip_auteurs", "(nom)", "('temp')");
 
 			$id_auteur = $auteur['id_auteur'];
 
diff --git a/ecrire/breves_voir.php3 b/ecrire/breves_voir.php3
index 8778fd175b3c54975d80f5f3c835765caa91af64..4fa8157f4f39daa4a6c6520e5c16f52d6ccb3767 100644
--- a/ecrire/breves_voir.php3
+++ b/ecrire/breves_voir.php3
@@ -66,7 +66,7 @@ if (($id_breve == 0) AND ($new == "oui")) {
 	if (!$langue_new) $langue_new = lire_meta('langue_site');
 	$langue_choisie_new = 'non';
 
-	$id_breve=spip_insert("spip_breves", "(titre, date_heure, id_rubrique, statut, lang, langue_choisie)", 
+	$id_breve = spip_abstract_insert("spip_breves", "(titre, date_heure, id_rubrique, statut, lang, langue_choisie)", 
 			      "('"._T('item_nouvelle_breve')."', NOW(), '$id_rubrique', 'refuse', '$langue_new', '$langue_choisie_new')");
 }
 
diff --git a/ecrire/inc_abstract_sql.php3 b/ecrire/inc_abstract_sql.php3
index 714619e938822446bec8f23ad89a593c6090b74d..cf25a48223ce8c72f3ffc3bb165964633af6a6fe 100644
--- a/ecrire/inc_abstract_sql.php3
+++ b/ecrire/inc_abstract_sql.php3
@@ -85,11 +85,11 @@ function spip_abstract_free($res, $serveur='')
   return $f($res);
 }
 
-function spip_abstract_insert($res, $serveur='')
+function spip_abstract_insert($table, $noms, $valeurs, $serveur='')
 {
-  if (!$serveur) return spip_insert($res);
-  $f = spip_abstract_serveur('spip_' . $serveur . '_insert', $serveur);
-  return $f($res);
+  $f = (!$serveur ? 'spip_insert' :
+	spip_abstract_serveur('spip_' . $serveur . '_insert', $serveur));
+  return $f($table, $noms, $valeurs);
 }
 
 # une composition tellement frequente...
diff --git a/ecrire/inc_logos.php3 b/ecrire/inc_logos.php3
index 8179e91d3a0ad67ff7811cf7f0cd006cea18e2c4..154b2cc8ed0c5c73f9f6142572568b5f93388d95 100644
--- a/ecrire/inc_logos.php3
+++ b/ecrire/inc_logos.php3
@@ -380,7 +380,7 @@ function inserer_vignette_base($image, $vignette) {
 	{
 		if ($row = spip_fetch_array($t)) {
 			$id_document = $row['id_document'];
-			$id_vignette = spip_insert("spip_documents", 
+			$id_vignette = spip_abstract_insert("spip_documents", 
 						   "(mode)",
 						   "('vignette')");
 			spip_query("UPDATE spip_documents SET id_vignette=$id_vignette WHERE id_document=$id_document");
diff --git a/ecrire/inc_majbase.php3 b/ecrire/inc_majbase.php3
index e27cfdf47d89505689becaefabf0e70205db3c3d..9f706ca020a5b20108100d2f2966cff0fcdb8e73 100644
--- a/ecrire/inc_majbase.php3
+++ b/ecrire/inc_majbase.php3
@@ -357,7 +357,7 @@ function maj_base() {
 				$fichier = _DIR_IMG . $fichier;
 				$taille = @filesize($fichier);
 				$fichier = substr('../', '', $fichier);
-				$id_document = spip_insert("spip_documents", 
+				$id_document = spip_abstract_insert("spip_documents", 
 							   "(titre, id_type, fichier, mode, largeur, hauteur, taille)",
 							   "('image $largeur x $hauteur', $id_type, '$fichier', 'vignette', '$largeur', '$hauteur', '$taille')");
 
@@ -528,7 +528,7 @@ function maj_base() {
 			$res = spip_query("SELECT * FROM spip_groupes_mots
 				WHERE titre='$type'");
 			if (spip_num_rows($res) == 0) {
-			  if ($id_groupe = spip_insert("spip_groupes_mots", 
+			  if ($id_groupe = spip_abstract_insert("spip_groupes_mots", 
 						       "(titre, unseul, obligatoire, articles, breves, rubriques, syndic, 0minirezo, 1comite, 6forum)",
 						       "('$type', 'non', 'non', 'oui', 'oui', 'non', 'oui', 'oui', 'oui', 'non')"))
 
diff --git a/ecrire/message_edit.php3 b/ecrire/message_edit.php3
index 46a075567b4062a5dae455a4cc87fedf151b295e..b7214a242db6982067790f82b17d88a9e3047f4e 100644
--- a/ecrire/message_edit.php3
+++ b/ecrire/message_edit.php3
@@ -134,7 +134,7 @@ if ($new == "oui") {
 	if ($type == 'pb') $statut = 'publie';
 	else $statut = 'redac';
 
-	$id_message = spip_insert("spip_messages",
+	$id_message = spip_abstract_insert("spip_messages",
 				  "(titre, date_heure, statut, type, id_auteur)", 
 				  "('".addslashes(filtrer_entites(_T('texte_nouveau_message')))."', NOW(), '$statut', '$type', $connect_id_auteur)");
 	
diff --git a/ecrire/mots_edit.php3 b/ecrire/mots_edit.php3
index 0425fdfd95fb907e9b9b10cbeb4ac3a93d4c7f50..8f41cab27da705c50de1c8ee24c06d78b7f01d39 100644
--- a/ecrire/mots_edit.php3
+++ b/ecrire/mots_edit.php3
@@ -27,7 +27,7 @@ if ($connect_statut == '0minirezo') {
 
 	if ($titre_mot) {
 		if ($new == 'oui' && $id_groupe) {
-		  $id_mot = spip_insert("spip_mots", '(id_groupe)', "($id_groupe)");
+		  $id_mot = spip_abstract_insert("spip_mots", '(id_groupe)', "($id_groupe)");
 
 
 			// ajouter le mot a l'article
@@ -245,7 +245,7 @@ if ($connect_statut =="0minirezo"){
 		$row_groupes = spip_fetch_array($result);
 		if (!$row_groupes) {
 			// il faut creer un groupe de mots (cas d'un mot cree depuis articles.php3)
-		  $row_groupes['id_groupe'] = spip_insert("spip_groupes_mots",
+		  $row_groupes['id_groupe'] = spip_abstract_insert("spip_groupes_mots",
 							  "(titre, unseul, obligatoire, articles, breves, rubriques, syndic, 0minirezo, 1comite, 6forum)",
 							  "('" .
 							  addslashes(_T('info_mot_sans_groupe'))."', 'non',  'non', 'oui', 'oui', 'non', 'oui', 'oui', 'non', 'non'");
diff --git a/ecrire/naviguer.php3 b/ecrire/naviguer.php3
index ae93b26bf978473949ac9d14898e41b70e209754..a820fea84be5a025d4f07c5f776eaef36202b76a 100644
--- a/ecrire/naviguer.php3
+++ b/ecrire/naviguer.php3
@@ -168,7 +168,7 @@ if ($modifier_rubrique == "oui") {
 if ($titre) {
 	// creation, le cas echeant
 	if ($new == 'oui' AND $flag_editable AND !$coll) {
-		$coll = spip_insert("spip_rubriques", 
+		$coll = spip_abstract_insert("spip_rubriques", 
 				    "(titre, id_parent)",
 				    "('"._T('item_nouvelle_rubrique')."', '$id_parent')");
 		$result = spip_query($query);
diff --git a/ecrire/rubriques_edit.php3 b/ecrire/rubriques_edit.php3
index f8b378e715e4258f8edea32e3acc1c86efbd1cc2..c1d14d4739ccac6ff87b372c70af239178b4653e 100644
--- a/ecrire/rubriques_edit.php3
+++ b/ecrire/rubriques_edit.php3
@@ -183,7 +183,7 @@ if (acces_rubrique($id_parent)) {
 echo "</SELECT>\n";
 
 // si c'est une rubrique-secteur contenant des breves, ne pas proposer de deplacer
-$query = "SELECT COUNT(*) AS cnt FROM spip_breves WHERE id_rubrique=\"$id_rubrique\"";
+$query = "SELECT COUNT(*) AS cnt FROM spip_breves WHERE id_rubrique='$id_rubrique'";
 $row = spip_fetch_array(spip_query($query));
 $contient_breves = $row['cnt'];
 if ($contient_breves > 0) {
diff --git a/ecrire/sites.php3 b/ecrire/sites.php3
index 75434d382d7bb70c0df65998aecc70b03097febe..1efd5c5940197fc22bab25f3601bc898b75c37b4 100644
--- a/ecrire/sites.php3
+++ b/ecrire/sites.php3
@@ -80,7 +80,7 @@ if ($new == 'oui') {
 	
 		$moderation = (lire_meta("moderation_sites") == "oui")? 'oui' : 'non';
 	
-		$id_syndic = spip_insert("spip_syndic",
+		$id_syndic = spip_abstract_insert("spip_syndic",
 					 "(nom_site, id_rubrique, id_secteur, date, date_syndic, statut, syndication, moderation)",
 					 "('"._T('avis_site_introuvable')."', $id_rubrique, $id_rubrique, NOW(), NOW(), 'refuse', 'non', '$moderation')");
 	}
diff --git a/ecrire/synchro.php3 b/ecrire/synchro.php3
index 2b93fbef557893211c3c39c3f7c17099b4fb7df8..446ff30a5911cfff756c727f7aebb3df1ed17670 100644
--- a/ecrire/synchro.php3
+++ b/ecrire/synchro.php3
@@ -102,7 +102,7 @@ echo propre("<ul><cadre>".$adresse_site."/backend.php3</cadre></ul>");
 echo "<p>"._T("ical_texte_rss_articles2")."</p>";
 
 
-	$query = "SELECT * FROM spip_rubriques WHERE id_parent=\"0\" ORDER BY titre";
+	$query = "SELECT * FROM spip_rubriques WHERE id_parent='0' ORDER BY titre";
 	$result = spip_query($query);
 
 	if (spip_num_rows($result) > 0) {
diff --git a/inc-compilo-api.php3 b/inc-compilo-api.php3
index ea74fb2395cac78af1f561db3ee7d8da23a222c8..b273f9f63090cc5a65b61bab4b0f40c882556287 100644
--- a/inc-compilo-api.php3
+++ b/inc-compilo-api.php3
@@ -29,7 +29,7 @@ class Boucle {
 	var $lang_select;
 	var $type_requete;
 	var $sql_serveur;
-	var $param;
+	var $param = array();
 	var $separateur;
 	var $doublons;
 	var $partie, $total_parties,$mode_partie;
diff --git a/inc-formulaires.php3 b/inc-formulaires.php3
index 0750382e4ee18aea2b470dc61440346a4447d02d..b0011fc8e7980d5acbbfb15f26efa3154d8c25ae 100644
--- a/inc-formulaires.php3
+++ b/inc-formulaires.php3
@@ -113,7 +113,7 @@ function reponse_confirmation($id_article, $val_confirm) {
 					$texte .= erreur(_T('form_deja_inscrit'));
 				}
 				else {
-					$query = "UPDATE spip_signatures SET statut=\"publie\" WHERE id_signature='$id_signature'";
+					$query = "UPDATE spip_signatures SET statut='publie' WHERE id_signature='$id_signature'";
 					$result = spip_query($query);
 					// invalider les pages de l'article
 					include_ecrire('inc_invalideur.php3');
diff --git a/inc-forum.php3 b/inc-forum.php3
index cbb98a0b3ff504c59801e0a13a22a8035c492263..cea3dd90b228d2c73be946fc6fc39414c5e59b8d 100644
--- a/inc-forum.php3
+++ b/inc-forum.php3
@@ -101,7 +101,7 @@ function retour_forum($id_rubrique, $id_parent, $id_article, $id_breve, $id_synd
 			$auteur = $GLOBALS['auteur_session']['nom'];
 			$email_auteur = $GLOBALS['auteur_session']['email'];
 		}
-		$id_message = spip_insert('spip_forum', 
+		$id_message = spip_abstract_insert('spip_forum', 
 					  "(date_heure, titre, ip, statut)",
 					  "(NOW(), '".addslashes($titre)."', '$REMOTE_ADDR', 'redac')");
 
diff --git a/spip_image.php3 b/spip_image.php3
index d8a73af9e87698c8e675826e58b2b9431f203f85..880c155ac17383a7821e880ab7eb2325da8b68e8 100644
--- a/spip_image.php3
+++ b/spip_image.php3
@@ -259,7 +259,7 @@ function ajout_doc($orig, $source, $mode, $id_document) {
 	}
 	if (!$id_document) {
 		$id_type = $row['id_type'];
-		$id_document = spip_insert("spip_documents", "(id_type, titre, date)", "($id_type, '', NOW())");
+		$id_document = spip_abstract_insert("spip_documents", "(id_type, titre, date)", "($id_type, '', NOW())");
 		$nouveau = true;
 		if ($id_article && isset($type)) {
 			$query = "INSERT INTO spip_documents_".$type."s (id_document, id_".$type.") VALUES ($id_document, $id_article)";