diff --git a/ecrire/exec/install.php b/ecrire/exec/install.php
index 86705321b9849227f4c86a4c3e4c59c1b3f6d7d1..8011e9a29b5121b82cbd0dc55599c795f081b927 100644
--- a/ecrire/exec/install.php
+++ b/ecrire/exec/install.php
@@ -45,6 +45,33 @@ function install_fichier_connexion($nom, $texte)
 	ecrire_fichier($nom, $texte);
 }
 
+function analyse_fichier_connection($file)
+{
+  
+	$s = @join('', @file($file));
+	if (preg_match("#mysql_connect\([\"'](.*)[\"'],[\"'](.*)[\"'],[\"'](.*)[\"']\)#", $s, $regs)) {
+		array_shift($regs);
+		return $regs;
+	} else if (preg_match("#spip_connect_db\('([^']*)','([^']*)','([^']*)','(.*)'#", $s, $regs)) {
+			if ($port_db = $regs[2]) $regs[1] .= ':'.$port_db;
+			$regs[2] = $regs[3];
+			array_shift($regs);
+			return $regs;
+	}
+	return '';
+}
+
+function bases_referencees($exclu='')
+{
+	$tables = array();
+	foreach(preg_files(_DIR_CONNECT, '.php$') as $f) {
+		if ($f != $exclu AND analyse_fichier_connection($f))
+			$tables[]= basename($f, '.php');
+	}
+	return $tables;
+}
+
+
 //
 // Verifier que l'hebergement est compatible SPIP ... ou l'inverse :-)
 // (sert a l'etape 1 de l'installation)
@@ -181,4 +208,141 @@ function fieldset($legend, $champs = array(), $horchamps='') {
 	return $fieldset;
 }
 
+function install_connexion_form($db, $login, $pass, $predef, $hidden, $etape)
+{
+	$pg = function_exists('pg_connect');
+	$mysql = function_exists('mysql_connect');
+
+	if ($predef[0] AND !is_string($predef[0]))
+		$server_db = _INSTALL_SERVER_DB;
+	else if (!($pg AND $mysql))
+		$server_db = $mysql ? 'mysql' : 'pg';
+	else {
+	  $server_db ='';
+	  $m = ($predef != 'mysql') ? '' : " selected='selected'";
+	  $p = ($predef != 'pg') ? '' : " selected='selected'";
+	}
+
+	return generer_form_ecrire('install', (
+	  "\n<input type='hidden' name='etape' value='$etape' />" 
+	. $hidden
+	. (_request('echec')?
+			("<p><b>"._T('avis_connexion_echec_1').
+			"</b></p><p>"._T('avis_connexion_echec_2')."</p><p style='font-size: small;'>"._T('avis_connexion_echec_3')."</p>")
+			:"")
+
+	. ($server_db
+		? '<input type="hidden" name="server_db" value="'.$server_db.'" />'
+		: ('<fieldset><legend>'
+		._L('Indiquer le type de base de donn&eacute;es :')
+		. "\n<select name='server_db'>"
+		. ($mysql
+			? "<option value='mysql'$m>"._L('MySQL')."</option>"
+			: '')
+		. ($pg
+			? "<option value='pg'$p>"._L('PostGreSQL')."</option>"
+			: '')
+		   . "</select></legend></fieldset>")
+	)
+
+	. ($predef[1]
+	? '<h3>'._T('install_adresse_base_hebergeur').'</h3>'
+	: fieldset(_T('entree_base_donnee_1'),
+		array(
+			'adresse_db' => array(
+				'label' => $db[1],
+				'valeur' => $db[0]
+			),
+		)
+	)
+	)
+
+	. ($predef[2]
+	? '<h3>'._T('install_login_base_hebergeur').'</h3>'
+	: fieldset(_T('entree_login_connexion_1'),
+		array(
+			'login_db' => array(
+					'label' => $login[1],
+					'valeur' => $login[0]
+			),
+		)
+	)
+	)
+
+	. ($predef[3]
+	? '<h3>'._T('install_pass_base_hebergeur').'</h3>'
+	: fieldset(_T('entree_mot_passe_1'),
+		array(
+			'pass_db' => array(
+				'label' => $pass[1],
+				'valeur' => $pass[0]
+			),
+		)
+	)
+	)
+
+	. bouton_suivant()));
+
+}
+
+// 4 valeurs qu'on reconduit d'un script a l'autre
+// sauf s'ils sont predefinis.
+
+function predef_ou_cache($adresse_db, $login_db, $pass_db, $server_db)
+{
+	return (defined('_INSTALL_HOST_DB')
+		? ''
+		: "\n<input type='hidden' name='adresse_db'  value=\"".htmlspecialchars($adresse_db)."\" />"
+	)
+	. (defined('_INSTALL_USER_DB')
+		? ''
+		: "\n<input type='hidden' name='login_db' value=\"".htmlspecialchars($login_db)."\" />"
+	)
+	. (defined('_INSTALL_PASS_DB')
+		? ''
+		: "\n<input type='hidden' name='pass_db' value=\"".htmlspecialchars($pass_db)."\" />"
+	)
+
+	. (defined('_INSTALL_SERVER_DB')
+		? ''
+		: "\n<input type='hidden' name='server_db' value=\"".htmlspecialchars($server_db)."\" />"
+	   );
+}
+
+// presentation des bases existantes
+
+function install_etape_liste_bases($server_db, $disabled=array())
+{
+	$result = sql_listdbs($server_db);
+	if (!$result) return '';
+	$bases = $checked = array();
+
+	while ($row = sql_fetch($result, $server_db)) {
+
+		$nom = array_shift($row);
+		$id = htmlspecialchars($nom);
+		$dis = in_array($nom, $disabled) ? " disabled='disabled'" : '';
+		$base = " name=\"choix_db\" value=\""
+		  . $nom
+		  . '"'
+		  . $dis
+		  . " type='radio' id='$id'";
+		$label = "<label for='$id'>"
+		. ($dis ? "<i>$nom</i>" : $nom)
+		. "</label>";
+
+		if (!$checked AND !$dis AND
+		    (($nom == $login_db) OR
+			($GLOBALS['table_prefix'] == $nom))) {
+			$checked = "<input$base checked='checked' />\n$label";
+		} else {
+			$bases[]= "<input$base />\n$label";
+		}
+	}
+	if (!$bases) return false;
+
+	if ($checked) {array_unshift($bases, $checked); $checked = true;}
+
+	return array($checked, $bases);
+}
 ?>
diff --git a/ecrire/install/etape_1.php b/ecrire/install/etape_1.php
index 2e835980e54fe8ed56843a1c731c3d268c213093..134d1decf48c6ac00633eb1841ed94c4695e6fc7 100644
--- a/ecrire/install/etape_1.php
+++ b/ecrire/install/etape_1.php
@@ -10,42 +10,39 @@
  *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
 \***************************************************************************/
 
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
 // http://doc.spip.org/@inc_install_1
 function install_etape_1_dist()
 {
-
 	echo install_debut_html();
 
 	// stopper en cas de grosse incompatibilite de l'hebergement
 	tester_compatibilite_hebergement();
 
-	list($adresse_db, $login_db) = login_hebergeur();
-	$pass_db = '';
+	// Recuperer les anciennes donnees pour plus de facilite (si presentes)
+	$s = !@is_readable(_FILE_CONNECT_TMP) ? ''
+	  : analyse_fichier_connection(_FILE_CONNECT_TMP);
+
+	list($adresse_db, $login_db) = $s ? $s : login_hebergeur();
 
 	$chmod = (isset($_GET['chmod']) AND preg_match(',^[0-9]+$,', $_GET['chmod']))? sprintf('%04o', $_GET['chmod']):'0777';
-	// Recuperer les anciennes donnees pour plus de facilite (si presentes)
-	if (@file_exists(_FILE_CONNECT_TMP)) {
-		$s = @join('', @file(_FILE_CONNECT_TMP));
-		if (preg_match("#mysql_connect\([\"'](.*)[\"'],[\"'](.*)[\"'],[\"'](.*)[\"']\)#", $s, $regs)) {
-			$adresse_db = $regs[1];
-			$login_db = $regs[2];
-		}
-		else if (preg_match("#spip_connect_db\('(.*)','(.*)','(.*)','(.*)'#", $s, $regs)) {
-			$adresse_db = $regs[1];
-			if ($port_db = $regs[2]) $adresse_db .= ':'.$port_db;
-			$login_db = $regs[3];
-		}
-	}
-	if(@file_exists(_FILE_CHMOD_TMP)){
+
+	if(@is_readable(_FILE_CHMOD_TMP)){
 		$s = @join('', @file(_FILE_CHMOD_TMP));
 		if(preg_match("#define\('_SPIP_CHMOD', (.*)\)#", $s, $regs)) {
 			$chmod = $regs[1]; 
 		}
 	}
 
-	$req = array($adresse_db,$login_db,$pass_db);
+	$db = array($adresse_db, _T('entree_base_donnee_2'));
+	$login = array($login_db, _T('entree_login_connexion_2'));
+	$pass = array($pass_db, _T('entree_mot_passe_2'));
 
-	$predef = array(defined('_INSTALL_SERVER_DB'), defined('_INSTALL_HOST_DB'), defined('_INSTALL_USER_DB'), defined('_INSTALL_PASS_DB'));
+	$predef = array(defined('_INSTALL_SERVER_DB'), 
+			defined('_INSTALL_HOST_DB'),
+			defined('_INSTALL_USER_DB'),
+			defined('_INSTALL_PASS_DB'));
 
 	// ces deux chaines de langues doivent etre reecrites
 #	echo info_etape(_T('info_connexion_mysql'), _T('texte_connexion_mysql').aide ("install1"));
@@ -57,86 +54,10 @@ function install_etape_1_dist()
 			. _L("SPIP sait utiliser MySQL (le plus r&eacute;pandu) et PostGreSQL (support encore exp&eacute;rimental).")
 			.'</p>'
 			);
-	echo install_etape_1_form($req, $predef, "\n<input type='hidden' name='chmod' value='$chmod' />", 2);
+	echo install_connexion_form($db, $login, $pass, $predef, "\n<input type='hidden' name='chmod' value='$chmod' />", 2);
 	echo info_progression_etape(1,'etape_','install/');
 	echo install_fin_html();
 }
 
-function install_etape_1_form($req, $predef, $hidden, $etape)
-{
-
-	if ($predef[0])
-		$server_db = _INSTALL_SERVER_DB;
-	else if (
-	abs(function_exists('pg_connect'))
-	+ abs(function_exists('mysql_connect'))
-	<= 1)
-		$server_db = function_exists('mysql_connect')
-			? 'mysql'
-			: 'pg';
-	else
-		$server_db ='';
-
-  return generer_form_ecrire('install', (
-	  "\n<input type='hidden' name='etape' value='$etape' />" 
-	. $hidden
-	. (_request('echec')?
-			("<p><b>"._T('avis_connexion_echec_1').
-			"</b></p><p>"._T('avis_connexion_echec_2')."</p><p style='font-size: small;'>"._T('avis_connexion_echec_3')."</p>")
-			:"")
-
-	. ($server_db
-		? '<input type="hidden" name="server_db" value="'.$server_db.'" />'
-		: 
-		'<fieldset><legend>'._L('Indiquer le type de base de donn&eacute;es :')
-		. "\n<select name='server_db'>"
-		. (function_exists('mysql_connect')
-			? "<option value='mysql'>"._L('MySQL')."</option>"
-			: '')
-		. (function_exists('pg_connect')
-			? "<option value='pg'>"._L('PostGreSQL')."</option>"
-			: '')
-		. "</select></legend></fieldset>"
-	)
-
-	. ($predef[1]
-	? '<h3>'._T('install_adresse_base_hebergeur').'</h3>'
-	: fieldset(_T('entree_base_donnee_1'),
-		array(
-			'adresse_db' => array(
-				'label' => _T('entree_base_donnee_2'),
-				'valeur' => $req[0]
-			),
-		)
-	)
-	)
-
-	. ($predef[2]
-	? '<h3>'._T('install_login_base_hebergeur').'</h3>'
-	: fieldset(_T('entree_login_connexion_1'),
-		array(
-			'login_db' => array(
-				'label' => _T('entree_login_connexion_2'),
-				'valeur' => $req[1]
-			),
-		)
-	)
-	)
-
-	. ($predef[3]
-	? '<h3>'._T('install_pass_base_hebergeur').'</h3>'
-	: fieldset(_T('entree_mot_passe_1'),
-		array(
-			'pass_db' => array(
-				'label' => _T('entree_mot_passe_2'),
-				'valeur' => $req[2]
-			),
-		)
-	)
-	)
-
-	. bouton_suivant()));
-
-}
 
 ?>
diff --git a/ecrire/install/etape_2.php b/ecrire/install/etape_2.php
index bf233c201242546201ea7602dc57bbcba5c70121..46eb1d7fae47cf21ff3feb4a911849e8894bc309 100644
--- a/ecrire/install/etape_2.php
+++ b/ecrire/install/etape_2.php
@@ -57,10 +57,10 @@ function install_etape_2_dist()
 
 		$hidden = (defined('_SPIP_CHMOD')
 		? ''
-		: "\n<input type='hidden' name='chmod' value='".htmlspecialchars($chmod)."' />"
-			   );
+		: ("\n<input type='hidden' name='chmod' value='".htmlspecialchars($chmod)."' />"))
+		. predef_ou_cache($adresse_db,$login_db,$pass_db, $server_db);
 
-		echo install_etape_2_form($adresse_db,$login_db,$pass_db, $server_db, $hidden, $checked, $res);
+		echo install_etape_2_form($hidden, $checked, $res, 3);
 	} else  {
 		echo info_etape(_T('info_connexion_base'));
 		echo "<p class='resultat'><b>",
@@ -83,36 +83,28 @@ function install_etape_2_dist()
 
 function install_etape_2_bases($login_db, $server_db)
 {
-
-	$result = sql_listdbs($server_db);
-
-	$bases = $checked = '';
-	if ($result) {
-		while ($row = sql_fetch($result, $server_db)) {
-
-			$table_nom = array_shift($row);
-			$base = "<li>\n<input name=\"choix_db\" value=\"".$table_nom."\" type='radio' id='tab$i'";
-			$base_fin = " /><label for='tab$i'>".$table_nom."</label>\n</li>";
-			if (!$checked AND
-			    (($table_nom == $login_db) OR
-			     ($GLOBALS['table_prefix'] == $table_nom))) {
-				$checked = "$base checked='checked'$base_fin";
-			} else {
-				$bases .= "$base$base_fin\n";
-			}
-		}
-	}
-
-	if ($bases) 
+	$res =  install_etape_liste_bases($server_db);
+	if ($res) {
+		list($checked, $bases) = $res;
 		return array($checked, 
-		       "<label for='choix_db'><b>"._T('texte_choix_base_2')."</b><br />"._T('texte_choix_base_3')."</label>"
-		       .  "<ul>$checked$bases</ul><p>"._T('info_ou')." ");
-
+			     "<label for='choix_db'><b>"
+			     ._T('texte_choix_base_2')
+			     ."</b><br />"
+			     ._T('texte_choix_base_3')
+			     ."</label>"
+			     . "<ul>\n<li>"
+			     . join("</li>\n<li>",$bases)
+			     . "</li>\n</ul><p>"
+			     . _T('info_ou')
+			     . " "
+			     );
+	}
 	$res = "<b>"._T('avis_lecture_noms_bases_1')."</b>
 		"._T('avis_lecture_noms_bases_2')."<p>";
+
 	if ($login_db) {
-			// Si un login comporte un point, le nom de la base est plus
-			// probablement le login sans le point -- testons pour savoir
+		// Si un login comporte un point, le nom de la base est plus
+		// probablement le login sans le point -- testons pour savoir
 			$test_base = $login_db;
 			$ok = sql_selectdb($test_base, $server_db);
 			$test_base2 = str_replace('.', '_', $test_base);
@@ -135,29 +127,11 @@ function install_etape_2_bases($login_db, $server_db)
 	return array($checked, $res);
 }
 
-function install_etape_2_form($adresse_db,$login_db,$pass_db, $server_db, $hidden, $checked, $res)
+function install_etape_2_form($hidden, $checked, $res, $etape)
  {
 	return generer_form_ecrire('install', (
-	  "\n<input type='hidden' name='etape' value='3' />"
+	  "\n<input type='hidden' name='etape' value='$etape' />"
 	 . $hidden
-	. (defined('_INSTALL_HOST_DB')
-		? ''
-		: "\n<input type='hidden' name='adresse_db'  value=\"".htmlspecialchars($adresse_db)."\" />"
-	)
-	. (defined('_INSTALL_USER_DB')
-		? ''
-		: "\n<input type='hidden' name='login_db' value=\"".htmlspecialchars($login_db)."\" />"
-	)
-	. (defined('_INSTALL_PASS_DB')
-		? ''
-		: "\n<input type='hidden' name='pass_db' value=\"".htmlspecialchars($pass_db)."\" />"
-	)
-
-	. (defined('_INSTALL_SERVER_DB')
-		? ''
-		: "\n<input type='hidden' name='server_db' value=\"".htmlspecialchars($server_db)."\" />"
-	)
-
 	. (defined('_INSTALL_NAME_DB')
 		? '<h3>'._T('install_nom_base_hebergeur'). ' <tt>'._INSTALL_NAME_DB.'</tt>'.'</h3>'
 		: "\n<fieldset><legend>"._T('texte_choix_base_1')."</legend>\n"
@@ -180,5 +154,4 @@ function install_etape_2_form($adresse_db,$login_db,$pass_db, $server_db, $hidde
 
 	. bouton_suivant()));
 }
-
 ?>
diff --git a/ecrire/install/etape_3.php b/ecrire/install/etape_3.php
index a241cef9c25624e9447166d5c2ee29537052c9bb..c4835e6366769781a37d413e1fb559989e0497e9 100644
--- a/ecrire/install/etape_3.php
+++ b/ecrire/install/etape_3.php
@@ -15,31 +15,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return;	#securite
 include_spip('inc/headers');
 include_spip('base/abstract_sql');
 
-function install_bases(){
+function install_bases($adresse_db, $login_db, $pass_db,  $server_db, $choix_db, $chmod_db){
 	global $spip_version;
-	$adresse_db = defined('_INSTALL_HOST_DB')
-		? _INSTALL_HOST_DB
-		: _request('adresse_db');
-
-	$login_db = defined('_INSTALL_USER_DB')
-		? _INSTALL_USER_DB
-		: _request('login_db');
-
-	$pass_db = defined('_INSTALL_PASS_DB')
-		? _INSTALL_PASS_DB
-		: _request('pass_db');
-
-	$choix_db = defined('_INSTALL_NAME_DB')
-		? _INSTALL_NAME_DB
-		: _request('choix_db');
-
-	$server_db = defined('_INSTALL_SERVER_DB')
-		? _INSTALL_SERVER_DB
-		: _request('server_db');
-
-	$chmod = defined('_SPIP_CHMOD')
-		? _SPIP_CHMOD
-		: _request('chmod');
 
 	// Prefix des tables :
 	// contrairement a ce qui est dit dans le message (trop strict mais c'est
@@ -132,8 +109,8 @@ function install_bases(){
 	$result_ok = @$fquery("SELECT COUNT(*) FROM spip_meta", $server_db);
 	if (!$result_ok) return "<!--\nvielle = $old rappel= $ligne_rappel\n-->";
 
-	if($chmod) {
-		install_fichier_connexion(_FILE_CHMOD_TMP, "@define('_SPIP_CHMOD', ". sprintf('0%3o',$chmod).");\n");
+	if ($chmod_db) {
+		install_fichier_connexion(_FILE_CHMOD_TMP, "@define('_SPIP_CHMOD', ". sprintf('0%3o',$chmod_db).");\n");
 	}
 
 	if (preg_match(',(.*):(.*),', $adresse_db, $r))
@@ -167,7 +144,7 @@ function install_propose_ldap()
 }
 
 
-function install_premier_auteur($email, $login, $nom, $pass)
+function install_premier_auteur($email, $login, $nom, $pass, $hidden)
 {
 	return info_etape(_T('info_informations_personnelles'),
 		     "<b>"._T('texte_informations_personnelles_1')."</b>" .
@@ -178,11 +155,8 @@ function install_premier_auteur($email, $login, $nom, $pass)
 			     )
 	. generer_form_ecrire('install', (
 			  "\n<input type='hidden' name='etape' value='4' />"
-			  . (defined('_INSTALL_SERVER_DB')
-			     ? ''
-			     : "\n<input type='hidden' name='server_db' value=\"".htmlspecialchars(_request('server_db'))."\" />"
-			     )
-			 . fieldset(_T('info_identification_publique'),
+			  . $hidden
+			  . fieldset(_T('info_identification_publique'),
 				    array(
 					  'nom' => array(
 							 'label' => "<b>"._T('entree_signature')."</b><br />\n"._T('entree_nom_pseudo_1')."\n",
@@ -216,8 +190,32 @@ function install_premier_auteur($email, $login, $nom, $pass)
 
 function install_etape_3_dist()
 {
+	$adresse_db = defined('_INSTALL_HOST_DB')
+		? _INSTALL_HOST_DB
+		: _request('adresse_db');
+
+	$login_db = defined('_INSTALL_USER_DB')
+		? _INSTALL_USER_DB
+		: _request('login_db');
+
+	$pass_db = defined('_INSTALL_PASS_DB')
+		? _INSTALL_PASS_DB
+		: _request('pass_db');
+
+	$server_db = defined('_INSTALL_SERVER_DB')
+		? _INSTALL_SERVER_DB
+		: _request('server_db');
+
+	$choix_db = defined('_INSTALL_NAME_DB')
+		? _INSTALL_NAME_DB
+		: _request('choix_db');
+
+	$chmod_db = defined('_SPIP_CHMOD')
+		? _SPIP_CHMOD
+		: _request('chmod');
+
 	$ldap_present = _request('ldap_present');
-	$res = $ldap_present ? '' : install_bases();
+	$res = $ldap_present ? '' : install_bases($adresse_db, $login_db, $pass_db,  $server_db, $choix_db, $chmod_db);
 
 	if (!function_exists('ldap_connect')) $ldap_present = true;
 
@@ -235,13 +233,20 @@ function install_etape_3_dist()
 		else
 			redirige_par_entete(generer_url_ecrire('install'));
 
+		$hidden = predef_ou_cache($adresse_db, $login_db, $pass_db, $server_db)
+		  . (defined('_INSTALL_NAME_DB') ? ''
+		     :  ("\n<input type='hidden' name='sel_db' value='"
+			 . (($choix_db == "new_spip") ? _request('table_new'): $choix_db)
+			 . "' />"));
+
 		$res =  "<p class='resultat'><b>"
 		. _T('info_base_installee')
 		. "</b></p>"
 		. install_premier_auteur(_request('email'),
-					   _request('login'),
-					   _request('nom'),
-					   _request('pass'))
+					_request('login'),
+					_request('nom'),
+					_request('pass'),
+					 $hidden)
 		. ($ldap_present ?  '' : install_propose_ldap());
 	}
 
diff --git a/ecrire/install/etape_4.php b/ecrire/install/etape_4.php
index e993617bd096da7f6f054d9f5cb8f501b3f23771..27cc9f53cb7ccb4a9c1c74a3dd698f5578df4db4 100644
--- a/ecrire/install/etape_4.php
+++ b/ecrire/install/etape_4.php
@@ -13,7 +13,6 @@
 if (!defined("_ECRIRE_INC_VERSION")) return;	#securite
 
 include_spip('inc/headers');
-include_spip('inc/acces');
 
 function install_etape_4_dist()
 {
@@ -98,30 +97,50 @@ function install_etape_4_dist()
 	$config = charger_fonction('config', 'inc');
 	$config();
 
-	$htpasswd = _DIR_TMP . _AUTH_USER_FILE;
-	spip_unlink($htpasswd);
-	spip_unlink($htpasswd."-admin");
-	ecrire_acces();
+	$suite =  "\n<input type='hidden' name='etape' value='fin' />" 
+	  . bouton_suivant(_T('login_espace_prive'));
 
-	// on l'envoie dans l'espace prive
-	echo generer_form_ecrire('accueil', bouton_suivant());
-	echo info_progression_etape(4,'etape_','install/');
-	echo install_fin_html();
+	$adresse_db = defined('_INSTALL_HOST_DB')
+		? _INSTALL_HOST_DB
+		: _request('adresse_db');
 
-	// et on perennise
+	$login_db = defined('_INSTALL_USER_DB')
+		? _INSTALL_USER_DB
+		: _request('login_db');
 
-	$f = str_replace( _FILE_TMP_SUFFIX, '.php', _FILE_CHMOD_TMP);
-	if (!@rename(_FILE_CHMOD_TMP, $f)) {
-		if (@copy(_FILE_CHMOD_TMP, $f))
-			spip_unlink(_FILE_CHMOD_TMP);
-	}
+	$pass_db = defined('_INSTALL_PASS_DB')
+		? _INSTALL_PASS_DB
+		: _request('pass_db');
 
-	$f = str_replace( _FILE_TMP_SUFFIX, '.php', _FILE_CONNECT_TMP);
-	if (!@rename(_FILE_CONNECT_TMP, $f)) {
-		if (@copy(_FILE_CONNECT_TMP, $f))
-			@spip_unlink(_FILE_CONNECT_TMP);
-	}
+	$server_db = defined('_INSTALL_SERVER_DB')
+		? _INSTALL_SERVER_DB
+		: _request('server_db');
+
+	$choix = defined('_INSTALL_NAME_DB')
+		? ''
+	  : ("\n<input type='hidden' name='sel_db' value='" . _request('sel_db') . "' />\n");
 
+	echo generer_form_ecrire('install', $suite);
+	echo info_progression_etape(4,'etape_','install/');
+	echo autres_bases($adresse_db, $login_db, $pass_db, $server_db, $choix);
+	echo install_fin_html();
 }
 
+function autres_bases($adresse_db, $login_db, $pass_db, $server_db, $hidden)
+{
+	$tables =  bases_referencees(_FILE_CONNECT_TMP);
+
+	if ($tables)
+		$tables = '<br /><br />'
+		  . _L('Bases d&eacute;j&agrave; interrogeables:')
+		  . "<ul>\n<li>"
+		  . join("</li>\n<li>",  $tables)
+		  . "</li>\n</ul>";
+
+	return "<br ><div style='padding: 10px; border: 1px solid; text-align: left'>" 
+	.  _L("Toutefois, si vous avez une autre base de donn&eacute;es &agrave; interroger avec SPIP, sur ce serveur ou un autre, d&eacute;clarez-la d&egrave;s maintenant.")
+	  . $tables
+	  .  install_connexion_form(array($adresse_db), array($login_db), array($pass_db), array(), $hidden, 'sup1')
+	.  "</div>";
+}
 ?>