diff --git a/.gitattributes b/.gitattributes
index 9ad6384844707475f8f9a0843d317ec2c46cf0e1..0e38cd036bb3de34cef237dabe6862aeee53b495 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -648,11 +648,14 @@ ecrire/install/etape_2.php -text
 ecrire/install/etape_3.php -text
 ecrire/install/etape_4.php -text
 ecrire/install/etape_chmod.php -text
+ecrire/install/etape_fin.php -text
 ecrire/install/etape_ldap1.php -text
 ecrire/install/etape_ldap2.php -text
 ecrire/install/etape_ldap3.php -text
 ecrire/install/etape_ldap4.php -text
 ecrire/install/etape_ldap5.php -text
+ecrire/install/etape_sup1.php -text
+ecrire/install/etape_sup2.php -text
 ecrire/install/index.php -text
 ecrire/lang/ecrire_br.php -text
 ecrire/lang/ecrire_bs.php -text
diff --git a/ecrire/install/etape_fin.php b/ecrire/install/etape_fin.php
new file mode 100644
index 0000000000000000000000000000000000000000..cb146df31a8b3280f16a6f33033b4c9263d6b5d6
--- /dev/null
+++ b/ecrire/install/etape_fin.php
@@ -0,0 +1,47 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2007                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/headers');
+include_spip('inc/acces');
+
+// Mise en place des fichiers de configuration si ce n'est fait
+
+function install_etape_fin_dist()
+{
+	$f = str_replace( _FILE_TMP_SUFFIX, '.php', _FILE_CHMOD_TMP);
+	if (file_exists(_FILE_CHMOD_TMP)) {
+		if (!@rename(_FILE_CHMOD_TMP, $f)) {
+			if (@copy(_FILE_CHMOD_TMP, $f))
+				spip_unlink(_FILE_CHMOD_TMP);
+		}
+	}
+
+	$f = str_replace( _FILE_TMP_SUFFIX, '.php', _FILE_CONNECT_TMP);
+	if (file_exists(_FILE_CONNECT_TMP)) {
+		spip_log("renomme $f");
+		if (!@rename(_FILE_CONNECT_TMP, $f)) {
+			if (@copy(_FILE_CONNECT_TMP, $f))
+				@spip_unlink(_FILE_CONNECT_TMP);
+		}
+		$htpasswd = _DIR_TMP . _AUTH_USER_FILE;
+		spip_unlink($htpasswd);
+		spip_unlink($htpasswd."-admin");
+		ecrire_acces();
+	}
+
+	// on l'envoie dans l'espace prive
+
+	redirige_par_entete(generer_url_ecrire('accueil'));	
+}
+?>
diff --git a/ecrire/install/etape_sup1.php b/ecrire/install/etape_sup1.php
new file mode 100644
index 0000000000000000000000000000000000000000..4491c436d937b8c50c898fe3a5f55dab2538dadc
--- /dev/null
+++ b/ecrire/install/etape_sup1.php
@@ -0,0 +1,95 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2007                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/headers');
+include_spip('inc/acces');
+include_spip('install/etape_2');
+
+// Mise en place d'un fichier de configuration supplementaire
+
+function install_etape_sup1_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');
+
+	$sel_db = defined('_INSTALL_NAME_DB')
+		? _INSTALL_NAME_DB
+		: _request('sel_db');
+
+	$link = spip_connect_db($adresse_db, 0, $login_db, $pass_db, '', $server_db);
+
+	$GLOBALS['connexions'][$server_db] = $link;
+
+	echo install_debut_html();
+
+	echo "\n<!--\n", join(', ', $link), " $login_db ";
+	$db_connect = 0; // revoirfunction_exists($ferrno) ? $ferrno() : 0;
+	echo join(', ', $GLOBALS['connexions'][$server_db]);
+	echo "\n-->\n";
+
+	if (($db_connect=="0") && $link) {
+		echo "<p class='resultat'><b>"._T('info_connexion_ok')."</b></p>\n";
+		spip_connect_db($adresse_db, 0, $login_db, $pass_db, '',$server_db);
+
+		echo "\n", '<!-- ',  sql_version($server_db), ' -->' ;
+		$l = bases_referencees();
+		array_push($l, $sel_db);
+		list(, $res) = install_etape_liste_bases($server_db, $l);
+
+		$hidden = predef_ou_cache($adresse_db,$login_db,$pass_db, $server_db)
+		  . (defined('_INSTALL_NAME_DB')
+		     ? ''
+		     : ("\n<input type='hidden' name='sel_db' value='" . _request('sel_db') . "' />\n"));
+
+
+
+		echo install_etape_sup1_form($hidden, $checked, $res, 'sup2');
+	} else  {
+		echo info_etape(_T('info_connexion_base'));
+		echo "<p class='resultat'><b>",
+#		  _T('avis_connexion_echec_1'),
+		  _L('La connexion &agrave; la base de donn&eacute;es a &eacute;chou&eacute;.'),
+		  "</b></p>";
+	}
+	
+	echo install_fin_html();
+}
+
+function install_etape_sup1_form($hidden, $checked, $bases, $etape)
+ {
+	return generer_form_ecrire('install', (
+	  "\n<input type='hidden' name='etape' value='$etape' />"
+	  . $hidden
+	  .  "\n<fieldset><legend>"
+	  . _L('Choisissez une base suppl&eacute;mentaire')
+	  . "</legend>\n"
+	  . "<ul>\n<li>"
+	  . join("</li>\n<li>",$bases)
+	  . "</li>\n</ul>"
+	  . bouton_suivant()));
+}
+?>
diff --git a/ecrire/install/etape_sup2.php b/ecrire/install/etape_sup2.php
new file mode 100644
index 0000000000000000000000000000000000000000..4efc90fbc31abdf144582875a47a83cc625d92ae
--- /dev/null
+++ b/ecrire/install/etape_sup2.php
@@ -0,0 +1,117 @@
+<?php
+
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2007                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
+
+if (!defined("_ECRIRE_INC_VERSION")) return;	#securite
+
+include_spip('inc/headers');
+include_spip('base/abstract_sql');
+
+function install_bases_sup($adresse_db, $login_db, $pass_db,  $server_db, $sup_db){
+
+	if (!($GLOBALS['connexions'][$server_db] = spip_connect_db($adresse_db, 0, $login_db, $pass_db, '', $server_db)))
+
+		return "<!-- connection perdue -->";
+
+	if (!sql_selectdb($sup_db, $server_db))
+		return "<!-- base inaccessible -->";
+
+
+	$q = sql_showbase('%', $server_db);
+
+	$tables = '';
+	while($r = sql_fetch($q)) {
+		$tables .= "<li>" . array_shift($r) . "</li>\n";
+	}
+	
+	$res = _L('Tables de la base') . "<ol>" . $tables . "</ol>\n";
+
+	if (preg_match(',(.*):(.*),', $adresse_db, $r))
+		list(,$adresse_db, $port) = $r;
+	else
+		$port = '';
+
+	$conn = "spip_connect_db("
+	. "'$adresse_db','$port','$login_db','"
+	. addcslashes($pass_db, "'\\") . "','$sup_db'"
+	. ",'$server_db', '');\n";
+
+	install_fichier_connexion(_DIR_CONNECT . $sup_db . '.php', $conn);
+
+	return $res;
+}
+
+function install_etape_sup2_dist()
+{
+	if (file_exists(_FILE_CONNECT_TMP))
+			include(_FILE_CONNECT_TMP);
+	else
+			redirige_par_entete(generer_url_ecrire('install'));
+	
+	if (file_exists(_FILE_CHMOD_TMP))
+			include(_FILE_CHMOD_TMP);
+	else
+			redirige_par_entete(generer_url_ecrire('install'));
+
+	$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');
+
+	$sel_db = defined('_INSTALL_NAME_DB')
+		? _INSTALL_NAME_DB
+		: _request('sel_db');
+
+	$choix_db = _request('choix_db');
+
+	if (!$choix_db)
+		$res = "<!-- il ne sait pas ce qu'il veut -->";
+	else {
+		$res = install_bases_sup($adresse_db, $login_db, $pass_db,  $server_db, $choix_db);
+
+		if ($res[1]=='!')
+			$res .= "<p class='resultat'><b>"._T('avis_operation_echec')."</b></p>";
+
+		else {
+			$res =  "<p class='resultat'><b>"
+			  . _L('base @base@ reconnue', 
+			       array('base' => $choix_db))
+			  . "</b></p>"
+			  . $res;
+		}
+	}
+
+	$res .= generer_form_ecrire('install',
+			"\n<input type='hidden' name='etape' value='4' />"
+			. (defined('_INSTALL_NAME_DB') ? ''
+			   :  ("\n<input type='hidden' name='sel_db' value='"
+			       . $sel_db
+			       . "' />"))
+			. predef_ou_cache($adresse_db,$login_db,$pass_db, $server_db)
+			. bouton_suivant());
+
+	echo install_debut_html();
+	echo $res;
+	echo install_fin_html();
+}
+
+?>