diff --git a/ecrire/base/connect_sql.php b/ecrire/base/connect_sql.php
index 064d66f41e1f91d309c17ffcb6835792039de704..434355a7cfa88617565294008bbb8944b1a02f4f 100644
--- a/ecrire/base/connect_sql.php
+++ b/ecrire/base/connect_sql.php
@@ -220,8 +220,9 @@ function spip_connect_ldap($serveur='') {
 	return auth_ldap_connect($serveur);
 }
 
-// 1 interface de abstract_sql a demenager dans base/abstract_sql a terme
-
+// Echappement d'une valeur (num, string, array) sous forme de chaine PHP
+// pour un array(1,'a',"a'") renvoie la chaine "'1','a','a\''"
+// Usage sql un peu deprecie, a remplacer par sql_quote()
 // http://doc.spip.org/@_q
 function _q ($a) {
 	return (is_numeric($a)) ? strval($a) :
@@ -231,7 +232,7 @@ function _q ($a) {
 
 // Nommage bizarre des tables d'objets
 // http://doc.spip.org/@table_objet
-function table_objet($type) {
+function table_objet($type,$serveur='') {
 	static $surnoms = null;
 	$type = preg_replace(',^spip_|^id_|s$,', '', $type);
 	if (!$type) return;
@@ -246,15 +247,20 @@ function table_objet($type) {
 				'extension' => 'types_documents' # hum
 			));
 	}
-	return isset($surnoms[$type])
-		? $surnoms[$type]
-		: rtrim($type,'s')."s";
+	if (isset($surnoms[$type]))
+		return $surnoms[$type];
+
+	$trouver_table = charger_fonction('trouver_table', 'base');
+	if ($desc = $trouver_table($type,$serveur))
+		return $desc['table'];
+
+	return rtrim($type,'s')."s"; # cas historique ne devant plus servir
 }
 
 // http://doc.spip.org/@table_objet_sql
-function table_objet_sql($type) {
+function table_objet_sql($type,$serveur='') {
 	global $table_des_tables;
-	$nom = table_objet($type);
+	$nom = table_objet($type, $serveur);
 	include_spip('public/interfaces');
 	if (isset($table_des_tables[$nom])) {
 		$t = $table_des_tables[$nom];
@@ -265,7 +271,7 @@ function table_objet_sql($type) {
 
 // http://doc.spip.org/@id_table_objet
 function id_table_objet($type,$serveur='') {
-	$type = objet_type($type);
+	$type = objet_type($type,$serveur);
 	if ($type == 'type')
 		return 'extension';
 	else {
diff --git a/ecrire/inc/modifier.php b/ecrire/inc/modifier.php
index 76c4142b948716cb19da8047951505a4c363eec3..2b9bafc707f2d30d4fd784ae7eb95764e54933ec 100644
--- a/ecrire/inc/modifier.php
+++ b/ecrire/inc/modifier.php
@@ -31,9 +31,9 @@ function modifier_contenu($type, $id, $options, $c=false, $serveur='') {
 
 	include_spip('inc/filtres');
 
-	$table_objet = table_objet($type);
-	$spip_table_objet = table_objet_sql($type);
-	$id_table_objet = id_table_objet($type);
+	$table_objet = table_objet($type,$serveur);
+	$spip_table_objet = table_objet_sql($type,$serveur);
+	$id_table_objet = id_table_objet($type,$serveur);
 	$trouver_table = charger_fonction('trouver_table', 'base');
 	$desc = $trouver_table($spip_table_objet, $serveur);