diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 8820bf38b0792c5a976386f6245d1d2c415ae050..fb795e54563d64f1acbfa6193ddec22a15ab2105 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -204,13 +204,14 @@ function spip_connect($serveur='') {
 
 	if (!$serveur) $serveur = 'db_mysql';
 
-	if (isset($t[$serveur])) return $t[$serveur];
+	if (!isset($t[$serveur])) {
+		$f = charger_fonction($serveur, 'base', true);
+		$t[$serveur] = $f ? $f() : false;
 
-	$f = charger_fonction($serveur, 'base', true);
-
-	$t[$serveur] = $f ? $f() : false;
-	if(!defined('_SPIP_CHMOD')
+		// on en profite pour fixer ca si absent de connect.php (hack)
 		define('_SPIP_CHMOD', 0777);
+	}
+
 	return $t[$serveur];
 }