diff --git a/ecrire/inc/meta.php b/ecrire/inc/meta.php
index 967238c2362bbdc16d0f7032c6766c355045513f..4d84654953d0bf203ca76d48b13cf541bbef4578 100644
--- a/ecrire/inc/meta.php
+++ b/ecrire/inc/meta.php
@@ -21,9 +21,6 @@ function lire_metas() {
 	}
 	if (!$GLOBALS['meta']['charset'])
 		ecrire_meta('charset', _DEFAULT_CHARSET);
-
-	if (isset($GLOBALS['noyau']))
-		$GLOBALS['meta']['noyau'] = $GLOBALS['noyau'];
 }
 
 function ecrire_meta($nom, $valeur) {
@@ -47,6 +44,10 @@ function ecrire_metas() {
 	lire_metas();
 
 	if (is_array($GLOBALS['meta'])) {
+
+		if (_DIR_RESTREINT && is_array($GLOBALS['noyau']))
+			$GLOBALS['meta']['noyau'] = $GLOBALS['noyau'];
+
 		$ok = ecrire_fichier (_FILE_META, serialize($GLOBALS['meta']));
 		if (!$ok && $GLOBALS['connect_statut'] == '0minirezo') {
 			include_spip('inc/minipres');
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 3461c069caf2a2bdbaabdeeb1094dc899fe60951..75497b1efb10dc9233da447bf31f561af94a1cc8 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -981,8 +981,10 @@ function spip_initialisation() {
 		$GLOBALS['meta'] = @unserialize($meta);
 		if (_DIR_RESTREINT
 		AND isset($GLOBALS['meta']['noyau'])
-		AND is_array($GLOBALS['meta']['noyau']))
+		AND is_array($GLOBALS['meta']['noyau'])) {
 			$GLOBALS['noyau'] = $GLOBALS['meta']['noyau'];
+			unset ($GLOBALS['meta']['noyau']);
+		}
 	}
 	// en cas d'echec refaire le fichier
 	if (!is_array($GLOBALS['meta']) AND _FILE_CONNECT) {