diff --git a/ecrire/inc_db_mysql.php3 b/ecrire/inc_db_mysql.php3
index 0726d86d755ff90b5abb442e85923f7db0479b4c..83d702845377b5c9b4e352b8e5caf5789a69fe7d 100644
--- a/ecrire/inc_db_mysql.php3
+++ b/ecrire/inc_db_mysql.php3
@@ -140,10 +140,26 @@ function traite_query($query) {
 function spip_connect_db($host, $port, $login, $pass, $db) {
 	global $spip_mysql_link, $spip_mysql_db;	// pour connexions multiples
 
+	// gerer le fichier ecrire/data/mysql_out
+	## TODO : ajouter md5(parametres de connexion)
+	if (@file_exists(_FILE_MYSQL_OUT)
+	AND (time() - @filemtime(_FILE_MYSQL_OUT) < 300)
+	AND !defined('_ECRIRE_INSTALL'))
+		return $GLOBALS['db_ok'] = false;
+
 	if ($port > 0) $host = "$host:$port";
 	$spip_mysql_link = @mysql_connect($host, $login, $pass);
 	$spip_mysql_db = $db;
-	return @mysql_select_db($db);
+	$ok = @mysql_select_db($db);
+
+	$GLOBALS['db_ok'] = $ok
+	AND !!@spip_num_rows(@spip_query_db('SELECT COUNT(*) FROM spip_meta'));
+
+	// En cas d'erreur marquer le fichier mysql_out
+	if (!$GLOBALS['db_ok']
+	AND !defined('_ECRIRE_INSTALL')) @touch(_FILE_MYSQL_OUT);
+
+	return $GLOBALS['db_ok'];
 }
 
 
diff --git a/ecrire/inc_version.php3 b/ecrire/inc_version.php3
index b86db08649d902ffd4ade3f690f445c50560e7e6..29ab7ce37cf004e87de4837950ad8a2eeafc9eb8 100644
--- a/ecrire/inc_version.php3
+++ b/ecrire/inc_version.php3
@@ -577,6 +577,8 @@ function spip_query($query) {
 		return;
 
 	// Vieux format de fichier connexion
+	// Note: la version 0.1 est compatible avec la 0.2 (mais elle gere
+	// moins bien les erreurs timeout sur SQL), on ne force donc pas l'upgrade
 	if ($GLOBALS['spip_connect_version'] < 0.1) {
 		if (!_DIR_RESTREINT) {$GLOBALS['db_ok'] = false; return;}
 		@Header("Location: upgrade.php3?reinstall=oui");
diff --git a/ecrire/install.php3 b/ecrire/install.php3
index b1232108bd7a5a8dc7b5ed3121e7d6423d8d1465..c0b690449d01720909e0d94607e8fa7298a7e717 100644
--- a/ecrire/install.php3
+++ b/ecrire/install.php3
@@ -258,7 +258,7 @@ else if ($etape == 4) {
 
 	// Message pour spip_query : tout va bien !
 	$GLOBALS['db_ok'] = true;
-	$GLOBALS['spip_connect_version'] = 0.1; # cf. inc_version
+	$GLOBALS['spip_connect_version'] = 0.2; # cf. inc_version
 
 	// Test si SPIP deja installe
 	spip_query("SELECT COUNT(*) FROM spip_meta");
@@ -297,11 +297,11 @@ else if ($etape == 4) {
 		$conn = "<"."?php\n";
 		$conn .= "if (defined(\"_ECRIRE_INC_CONNECT\")) return;\n";
 		$conn .= "define(\"_ECRIRE_INC_CONNECT\", \"1\");\n";
-		$conn .= "\$GLOBALS['spip_connect_version'] = 0.1;\n";
+		$conn .= "\$GLOBALS['spip_connect_version'] = 0.2;\n";
 		$conn .= "include_ecrire('inc_db_mysql.php3');\n";
 		$conn .= $ligne_rappel;
-		$conn .= "@spip_connect_db('$adresse_db','','$login_db','$pass_db','$sel_db');\n";
-		$conn .= "\$GLOBALS['db_ok'] = !!@spip_num_rows(@spip_query_db('SELECT COUNT(*) FROM spip_meta'));\n";
+		$conn .= "spip_connect_db('$adresse_db','','$login_db','$pass_db','$sel_db');\n";
+#		$conn .= "\$GLOBALS['db_ok'] = !!@spip_num_rows(@spip_query_db('SELECT COUNT(*) FROM spip_meta'));\n";
 		$conn .= "?".">";
 		$myFile = fopen(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, "wb");
 		fputs($myFile, $conn);