diff --git a/ecrire/action/desinstaller_plugin.php b/ecrire/action/desinstaller_plugin.php
index 59b901bd16c4da38d2f7e17405ca462d33e417b8..ba03d64050e6a88481523fdea8a211924b0a2a86 100644
--- a/ecrire/action/desinstaller_plugin.php
+++ b/ecrire/action/desinstaller_plugin.php
@@ -25,8 +25,6 @@ function action_desinstaller_plugin_dist() {
 		// desactiver si il a bien ete desinstalle
 		if (!$etat)
 			ecrire_plugin_actifs(array($plug_file),false,'enleve');
-		include_spip('inc/meta');
-		if (lire_metas()) ecrire_fichier(_FILE_META, serialize($GLOBALS['meta'])); 
 	}
 	if ($redirect = _request('redirect')){
 		include_spip('inc/headers');
diff --git a/ecrire/inc/meta.php b/ecrire/inc/meta.php
index f01cb35f003673c54fc0dc4fc83e4e0b3905a088..d422e7cf9d370b2c4f6d46a651d7642754a8531a 100644
--- a/ecrire/inc/meta.php
+++ b/ecrire/inc/meta.php
@@ -13,7 +13,20 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
 // Les parametres generaux du site sont dans une table SQL;
-// Recopie dans un tableau PHP global, car on en a souvent besoin
+// Recopie dans le tableau PHP global meta, car on en a souvent besoin
+
+function init_metas()
+{
+	// Lire les meta, en cache si disponibles.
+	if (lire_fichier(_FILE_META, $meta))
+		$GLOBALS['meta'] = @unserialize($meta);
+	// si cache absent, le refaire.
+	if (!$GLOBALS['meta']) {
+		if (lire_metas())
+			ecrire_fichier(_FILE_META,
+				       serialize($GLOBALS['meta']));
+	}
+}
 
 // http://doc.spip.org/@lire_metas
 function lire_metas() {
@@ -37,6 +50,7 @@ function ecrire_meta($nom, $valeur, $importable = NULL) {
 	$GLOBALS['meta'][$nom] = $valeur;
 
 	if (!_FILE_CONNECT && !@file_exists(_FILE_CONNECT_INS .'.php')) return;
+	include_spip('base/abstract_sql');
 	$res = sql_fetsel("impt,valeur", 'spip_meta', "nom=" . _q($nom));
 	// conserver la valeur de impt si existante
 	// et ne pas detruire le cache si affectation a l'identique
diff --git a/ecrire/inc/plugin.php b/ecrire/inc/plugin.php
index 5e38b6c0c44f2518d991f3614973cd5a9ec65b1a..363834e0e2611ae1d3839d7d50cd6d4462058fc1 100644
--- a/ecrire/inc/plugin.php
+++ b/ecrire/inc/plugin.php
@@ -219,7 +219,7 @@ function liste_chemin_plugin_actifs(){
 function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz') {
 	static $liste_pipe_manquants=array();
 
-	include_spip('inc/meta');
+
 
 	$liste_fichier_verif = array();
 	if (($pipe_recherche)&&(!in_array($pipe_recherche,$liste_pipe_manquants)))
@@ -357,8 +357,6 @@ function ecrire_plugin_actifs($plugin,$pipe_recherche=false,$operation='raz') {
 		$liste_fichier_verif[$k] = (_DIR_RACINE?"":"../") . _DIR_PLUGINS . preg_replace(",(_DIR_PLUGINS\.)?',", "", $f);
 	ecrire_fichier(_DIR_TMP.'verifier_plugins.txt',
 		serialize($liste_fichier_verif));
-
-	if (lire_metas()) ecrire_fichier(_FILE_META, serialize($GLOBALS['meta']));
 }
 
 // precompilation des pipelines
@@ -530,8 +528,8 @@ function installe_plugins(){
 		}
 	}
 	ecrire_meta('plugin_installes',serialize($meta_plug_installes),'non');
-	ecrire_metas();
 }
+
 // http://doc.spip.org/@plugin_est_installe
 function plugin_est_installe($plug_path){
 	$plugin_installes = isset($GLOBALS['meta']['plugin_installes'])?unserialize($GLOBALS['meta']['plugin_installes']):array();
@@ -767,7 +765,6 @@ function plugin_pipeline_props(&$arbre){
 
 // http://doc.spip.org/@verifie_include_plugins
 function verifie_include_plugins() {
-	include_spip('inc/meta');
 	ecrire_meta('message_crash_plugins', 1);
 
 /*	if (_request('exec')!="admin_plugin"
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 01db26cec4566f27b337d3171af3ea7ead39ce3f..452bc30b8b7cba01f136d0324c5b1952de23b93f 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -1334,17 +1334,8 @@ function spip_initialisation($pi=NULL, $pa=NULL, $ti=NULL, $ta=NULL) {
 	define('_RENOUVELLE_ALEA', 12 * 3600);
 
 	if  (_FILE_CONNECT) {
-		// Lire les meta, en cache si disponibles.
-		if (lire_fichier(_FILE_META, $meta))
-			$GLOBALS['meta'] = @unserialize($meta);
-		// si cache absent, le refaire.
-		if (!$GLOBALS['meta']) {
-			include_spip('inc/meta');
-			if (lire_metas())
-				ecrire_fichier(_FILE_META,
-					       serialize($GLOBALS['meta']));
-		}
-
+		include_spip('inc/meta');
+		init_metas();
 		// Forcer le renouvellement de l'alea
 
 		if (test_espace_prive()
diff --git a/ecrire/maj/v019.php b/ecrire/maj/v019.php
index c5bd217bb12d3ce92b18303f92d0a19bac3d2938..b6df415fa12cb0415fa10a7235f3c37ddb3b1e10 100644
--- a/ecrire/maj/v019.php
+++ b/ecrire/maj/v019.php
@@ -63,8 +63,8 @@ function maj_v019_dist($version_installee, $version_cible)
 		$liste_tables[7]='spip_rubriques';
 		$liste_tables[8]='spip_signatures';
 		$liste_tables[9]='spip_syndic';
-		$s=addslashes(serialize($liste_tables));
-		spip_query("INSERT INTO spip_meta ( `nom` , `valeur` , `maj` ) VALUES ('index_table', '$s', NOW( ));");
+
+		ecrire_meta('index_table', serialize($liste_tables));
 
 		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_article` as id_objet,'1' as id_table FROM spip_index_articles");
 		spip_query("DROP TABLE IF EXISTS spip_index_articles");
@@ -92,7 +92,7 @@ function maj_v019_dist($version_installee, $version_cible)
 
 		spip_query("INSERT INTO spip_index (`hash`,`points`,`id_objet`,`id_table`) SELECT `hash`,`points`,`id_syndic` as id_objet,'9' as `id_table FROM spip_index_syndic");
 		spip_query("DROP TABLE IF EXISTS spip_index_syndic");
-		if (lire_metas()) ecrire_fichier(_FILE_META, serialize($GLOBALS['meta']));
+
 		maj_version(1.905);
 	}