diff --git a/.gitattributes b/.gitattributes
index 62f3aa4726421ff5045990b7c8aaf6efa3d8326f..1f68937556d528b110599a367aa23f27fe4cd33d 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3,6 +3,10 @@ IMG/logo_spip.jpg -text
 /INSTALL.txt -text
 /UPGRADE.txt -text
 dist/choix_mots.html -text
+dist/favicon.ico -text
+dist/puce.gif -text
+dist/puce_rtl.gif -text
+dist/rien.gif -text
 dist/style_prive.html -text
 ecrire/action/autoriser.php -text
 ecrire/action/ical.php -text
@@ -131,7 +135,6 @@ ecrire/img_pack/documents-48.png -text
 ecrire/img_pack/documents-48_rtl.png -text
 ecrire/img_pack/edit.gif -text
 ecrire/img_pack/effacer-cache-24.gif -text
-ecrire/img_pack/favicon.ico -text
 ecrire/img_pack/feed.png -text
 ecrire/img_pack/fiche-perso-24.gif -text
 ecrire/img_pack/fiche-perso.png -text
@@ -267,8 +270,6 @@ ecrire/img_pack/puce-rouge.gif -text
 ecrire/img_pack/puce-verte-anim.gif -text
 ecrire/img_pack/puce-verte-breve.gif -text
 ecrire/img_pack/puce-verte.gif -text
-ecrire/img_pack/puce.gif -text
-ecrire/img_pack/puce_rtl.gif -text
 ecrire/img_pack/racine-24.gif -text
 ecrire/img_pack/racine-site-12.gif -text
 ecrire/img_pack/racine-site-24.gif -text
@@ -375,7 +376,4 @@ ecrire/urls/page.php -text
 ecrire/urls/propres-qs.php -text
 /inc-public.php3 -text
 /index.php -text
-/puce.gif -text
-/puce_rtl.gif -text
-/rien.gif -text
 /spip.php -text
diff --git a/UPGRADE.txt b/UPGRADE.txt
index b707088d6083a354746c60649e49b773ae36b2f0..d21b798a74320332c3a22e84cb88d14ab926184f 100644
--- a/UPGRADE.txt
+++ b/UPGRADE.txt
@@ -3,7 +3,7 @@ Mise a jour de votre site SPIP
 ------------------------------
 
 La version 1.9 de SPIP n'offre plus les fichiers article.php3 etc, à la
-racine du site.
+racine du site. C'est le fichier spip.php qui centralise tous les hits.
 
 Si vous laissez les anciens fichiers, ils continueront à fonctionner comme
 avant, grâce au fichier "fantôme" inc-public.php3
@@ -11,12 +11,15 @@ avant, gr
 Mais vous pouvez aussi, si votre hébergeur l'autorise, utiliser le fichier
 htaccess.txt, en le recopiant à la racine du site sous le nom ".htaccess".
 Ce fichier dira alors au serveur Web que les hits sur une adresse du type
-article.php3?id_article=1 doivent être traités par spip.php
+article.php3?id_article=1 doivent être traités par spip.php ; il gere, de
+plus, les URLs "propres".
 
 Par ailleurs, si vous aviez des fichiers personnalises (mes_options.php3,
 mes_fonctions.php3, fichiers de langue, ou balises dynamiques), il est temps
-de les renommer en ".php". En effet, cette version de transition (1.9) est
-encore compatible avec .php3, mais la prochaine (2.0) ne le sera pas.
+de les renommer en ".php", et de les ranger a leur nouvelle place.
+
+En effet, si cette version de transition (1.9) est encore compatible avec
+.php3, la prochaine (2.0) ne le sera pas.
 
 Pour en savoir plus :
 	http://www.spip.net/...
diff --git a/dist/404.html b/dist/404.html
index 00655d47b3e1ced8733cfe06286802aeae364c5d..2ca512637979fb3c22f291d7528889e290b0eb1f 100644
--- a/dist/404.html
+++ b/dist/404.html
@@ -17,7 +17,8 @@
 	<!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) -->
 	<link rel="stylesheet" href="#CHEMIN{habillage.css}" type="text/css" media="print, projection, screen, tv" />
 
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 <body>
 
 
diff --git a/dist/article.html b/dist/article.html
index f963e44805238a3a7fb75586e4c96a0be421af5f..4e468929e93b60208fb033141d05387a430b8660 100644
--- a/dist/article.html
+++ b/dist/article.html
@@ -14,7 +14,8 @@
 <link rel="stylesheet" href="#CHEMIN{habillage.css}" type="text/css" media="projection, screen, tv" />
 <!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur -->
 <link rel="stylesheet" href="#CHEMIN{impression.css}" type="text/css" media="print" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 
 <body>
 <div id="navigation">
diff --git a/dist/auteur.html b/dist/auteur.html
index 2f39310d41e8a63cd2ad3735dd52b1ca1e775279..7734df0d8da1c43f3ceffa84ea9cd6cd241cbf96 100644
--- a/dist/auteur.html
+++ b/dist/auteur.html
@@ -16,7 +16,8 @@
 <link rel="stylesheet" href="#CHEMIN{habillage.css}" type="text/css" media="projection, screen, tv" />
 <!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur -->
 <link rel="stylesheet" href="#CHEMIN{impression.css}" type="text/css" media="print" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 
 <body>
 
diff --git a/dist/breve.html b/dist/breve.html
index 88d63ca3804376ba9d1c788976060e29ea146934..978f98908c1a3ceec7cb6789715ca026281c248d 100644
--- a/dist/breve.html
+++ b/dist/breve.html
@@ -16,7 +16,8 @@
 <link rel="stylesheet" href="#CHEMIN{habillage.css}" type="text/css" media="projection, screen, tv" />
 <!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur -->
 <link rel="stylesheet" href="#CHEMIN{impression.css}" type="text/css" media="print" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 
 <body>
 
diff --git a/ecrire/img_pack/calendrier.css b/dist/calendrier.css
similarity index 99%
rename from ecrire/img_pack/calendrier.css
rename to dist/calendrier.css
index a1ca29d0e97cffeea0772beddd11def843d52949..67322d5c4dc702897c93b2795cc732bcd17f7f89 100644
--- a/ecrire/img_pack/calendrier.css
+++ b/dist/calendrier.css
@@ -218,7 +218,7 @@ a.calendrier-annee:hover {
 .calendrier-png { 
 	width: 12px; 
 	height: 12px;
-	behavior: url(win_png.htc);
+	behavior: url(dist/win_png.htc);
 }
 
 .calendrier-icone { 
diff --git a/ecrire/img_pack/favicon.ico b/dist/favicon.ico
similarity index 100%
rename from ecrire/img_pack/favicon.ico
rename to dist/favicon.ico
diff --git a/dist/forum.html b/dist/forum.html
index 08010e88772437d39a1daa6059f571eaa07584f2..95a9ae7d242249963fd20d43331bafc5f9186272 100644
--- a/dist/forum.html
+++ b/dist/forum.html
@@ -15,7 +15,8 @@
 
 <!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) -->
 <link rel="stylesheet" href="#CHEMIN{habillage.css}" type="text/css" media="print, projection, screen, tv" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 
 <body>
 
diff --git a/dist/login.html b/dist/login.html
index 511f4067eb31ed9e580bbfaf71190051ba006308..2284de275e9b5abbd5be0fe6767bed53a77cce0c 100644
--- a/dist/login.html
+++ b/dist/login.html
@@ -13,7 +13,8 @@
 	<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />
 	<link rel="stylesheet" href="#CHEMIN{spip_style.css}" type="text/css" />
 	<link rel="stylesheet" href="#CHEMIN{typographie.css}" type="text/css" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 <body>
 
 <div style='text-align: center; margin: auto; width: 400px'>
diff --git a/dist/mot.html b/dist/mot.html
index 17202bc1b0436be500d039c97694fe1a1df1b42c..b1da7291821fe01cf87ba653d4de04c044874206 100644
--- a/dist/mot.html
+++ b/dist/mot.html
@@ -15,7 +15,8 @@
 <link rel="stylesheet" href="#CHEMIN{habillage.css}" type="text/css" media="projection, screen, tv" />
 <!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur -->
 <link rel="stylesheet" href="#CHEMIN{impression.css}" type="text/css" media="print" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 
 <body>
 <BOUCLE_mot_principal(MOTS) {id_mot} {doublons}>
diff --git a/dist/plan.html b/dist/plan.html
index bca779af23400353fd4a879f9307234f9fd92c32..b3f8398980ca6afe192012a1b90dcf6917fcfb42 100644
--- a/dist/plan.html
+++ b/dist/plan.html
@@ -13,7 +13,8 @@
 
 <!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) -->
 <link rel="stylesheet" href="#CHEMIN{habillage.css}" type="text/css" media="print, projection, screen, tv" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 
 <body>
 
diff --git a/ecrire/img_pack/puce.gif b/dist/puce.gif
similarity index 100%
rename from ecrire/img_pack/puce.gif
rename to dist/puce.gif
diff --git a/ecrire/img_pack/puce_rtl.gif b/dist/puce_rtl.gif
similarity index 100%
rename from ecrire/img_pack/puce_rtl.gif
rename to dist/puce_rtl.gif
diff --git a/dist/recherche.html b/dist/recherche.html
index b02653334c9ffacb263c5025883f2a0bf0204765..fd5ab0d006220d7df5f5c55c13197b2db96339ed 100644
--- a/dist/recherche.html
+++ b/dist/recherche.html
@@ -16,7 +16,8 @@
 <link rel="stylesheet" href="#CHEMIN{habillage.css}" type="text/css" media="projection, screen, tv" />
 <!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur -->
 <link rel="stylesheet" href="#CHEMIN{impression.css}" type="text/css" media="print" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 
 <body>
 
diff --git a/dist/resume.html b/dist/resume.html
index 6e0596495b14243fe01a950eea778f319a8b0f1f..6921697711f25a9f8376be93d15b7f26ff7b27b3 100644
--- a/dist/resume.html
+++ b/dist/resume.html
@@ -13,7 +13,8 @@
 
 <!-- media="..." permet de ne pas utiliser ce style sous Netscape 4 (sinon plantage) -->
 <link rel="stylesheet" href="#CHEMIN{habillage.css}" type="text/css" media="print, projection, screen, tv" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 
 <body>
 
diff --git a/rien.gif b/dist/rien.gif
similarity index 100%
rename from rien.gif
rename to dist/rien.gif
diff --git a/dist/rubrique.html b/dist/rubrique.html
index 99a88e92efa79cde7140b19fdb3953bd42772429..907cf4651250004b1f02e62ca93ce72cfd28a0e0 100644
--- a/dist/rubrique.html
+++ b/dist/rubrique.html
@@ -19,7 +19,8 @@
 
 <!-- Lien vers le backend pour navigateurs eclaires -->
 <link rel="alternate" type="application/rss+xml" title="<:syndiquer_rubrique:>" href="#URL_PAGE{backend,id_rubrique=#ID_RUBRIQUE}" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 
 <body>
 
diff --git a/dist/site.html b/dist/site.html
index 6a672f4df99b70dd5f9951f11b890c4f0bcb52c5..054b0d084c5caedff7fafc6cae92b2d0ec8ec5f7 100644
--- a/dist/site.html
+++ b/dist/site.html
@@ -21,7 +21,8 @@
 <link rel="stylesheet" href="#CHEMIN{habillage.css}" type="text/css" media="projection, screen, tv" />
 <!-- media="print" permet d'utiliser cette feuille de style quand vous imprimez depuis votre navigateur -->
 <link rel="stylesheet" href="#CHEMIN{impression.css}" type="text/css" media="print" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 
 <body>
 
diff --git a/dist/sommaire.html b/dist/sommaire.html
index 3fb98a7be28d8a79a6370733f969ac4557e228b2..3fae6eee35722e0e5acbbf93ec5493d8e29c129d 100644
--- a/dist/sommaire.html
+++ b/dist/sommaire.html
@@ -16,7 +16,8 @@
 
 <!-- Lien vers le backend pour navigateurs eclaires -->
 <link rel="alternate" type="application/rss+xml" title="<:syndiquer_site:>" href="#URL_PAGE{backend}" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 
 <body>
 <div id="navigation">
diff --git a/dist/sommaire_texte.html b/dist/sommaire_texte.html
index 6cb9b965c98d4d930e7c8eef75ed69aa41cea49d..7b08013dc86af3e1af738b884bed36a24e6b2575 100644
--- a/dist/sommaire_texte.html
+++ b/dist/sommaire_texte.html
@@ -13,7 +13,8 @@
 	<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" />
 	<meta http-equiv="AUTHOR" content="#NOM_SITE_SPIP" />
 	<meta http-equiv="DESCRIPTION" content="Edition en mode texte de #NOM_SITE_SPIP" />
-</head>
+[	<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />
+]</head>
 <body>
 	<hr />
 	<:edition_mode_texte:> <a href="#URL_SITE_SPIP">{#NOM_SITE_SPIP}</a>
diff --git a/ecrire/img_pack/spip_admin.css b/dist/spip_admin.css
similarity index 100%
rename from ecrire/img_pack/spip_admin.css
rename to dist/spip_admin.css
diff --git a/spip_style.css b/dist/spip_style.css
similarity index 100%
rename from spip_style.css
rename to dist/spip_style.css
diff --git a/win_png.htc b/dist/win_png.htc
similarity index 97%
rename from win_png.htc
rename to dist/win_png.htc
index cd444ae04cc09045d71176c0cced7dd0b2d33c16..719f050b92f121f8a0dcff2d326360d7fca6310a 100755
--- a/win_png.htc
+++ b/dist/win_png.htc
@@ -4,7 +4,7 @@
 
 var supported = /MSIE (5\.5)|[6789]/.test(navigator.userAgent) && navigator.platform == "Win32";
 var realSrc;
-var blankSrc = "rien.gif";
+var blankSrc = "dist/rien.gif";
 
 if (supported) fixImage();
 
diff --git a/ecrire/action/ical.php b/ecrire/action/ical.php
index 31f427dd5c0a6ac0ccccdd005a2895ebb9d90d92..d07232befa5c69b1c8edf59e882a77bce1a721c5 100644
--- a/ecrire/action/ical.php
+++ b/ecrire/action/ical.php
@@ -31,6 +31,13 @@ function ligne_uid ($texte) {
 function action_ical_dist()
 {
 	global $id_auteur, $arg, $action, $titres;
+
+	// compatibilite des URLs spip_cal.php3?id=xxx&cle=yyy (SPIP 1.8)
+	if (!$id_auteur AND _request('id')) {
+		$id_auteur = _request('id');
+		$arg = _request('cle');
+	}
+
 	if (verifier_low_sec($id_auteur, $arg, $action)) {
 		$result = spip_query("SELECT * FROM spip_auteurs WHERE id_auteur=" . intval($id_auteur));
 
diff --git a/ecrire/action/rss.php b/ecrire/action/rss.php
index 1bbbb970957f2703254694e1467ac0bdb0fa8342..eefcf3a6e8da003742d11db1c806745180581a4b 100644
--- a/ecrire/action/rss.php
+++ b/ecrire/action/rss.php
@@ -363,6 +363,12 @@ function action_rss_dist()
 //
 // Verifier la securite du lien et decoder les arguments
 //
+
+// Pour memoire, la forme des URLs : 
+// 1.8: spip_rss.php?op=forums&args=page-public&id=4&cle=047b4183&lang=fr
+// 1.9: spip.php?action=rss&op=forums&args=page-public&id=4&cle=047b4183&lang=fr
+// ou encore spip.php?action=rss&op=a-suivre&id=5&cle=5731e121&lang=fr
+
 spip_timer('rss');
 if (!verifier_low_sec ($id, $cle,
 "rss $op $args"
diff --git a/ecrire/exec/articles_edit.php b/ecrire/exec/articles_edit.php
index 30fba11d4919d1e5ec351be5fb3a2fb25752b3a4..879e9c0db90abafdea850445d53a1fcecd528fe8 100644
--- a/ecrire/exec/articles_edit.php
+++ b/ecrire/exec/articles_edit.php
@@ -15,7 +15,7 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 include_spip('inc/presentation');
 include_spip('inc/rubriques');
 include_spip('inc/documents');
-include_spip ('inc/barre');
+include_spip('inc/barre');
 
 //
 // Gestion des textes trop longs (limitation brouteurs)
@@ -322,22 +322,10 @@ function exec_articles_edit_dist()
 // ESSAI pour "Joindre un document" depuis l'espace prive (UPLOAD_DIRECT)
 /*if ($GLOBALS['action'] AND $GLOBALS['doc']) {
 	global $action, $doc;
-
-	$var_nom = "spip_image";
-	$var_f = find_in_path('inc_' . $var_nom . '.php');
-	if ($var_f) 
-		include($var_f);
-	else include_ecrire('inc_' . $var_nom);
-
-	$var_nom .= '_' . $action;
-
-	if (function_exists($var_nom))
+	if ($var_nom = include_fonction($action, 'action'))
 		$var_nom($doc);
-	elseif (function_exists($var_f = $var_nom . '_dist'))
-		$var_f($doc);
 	else
 		spip_log("fonction $var_nom indisponible");
-
 #	return;
 }*/
 
diff --git a/ecrire/exec/install.php b/ecrire/exec/install.php
index 08a17c8ecd0e04b619a546c2bf9e07cbba0c48f4..a9e28ff6b569b79820a5bfb4355c0ba86196e9f3 100644
--- a/ecrire/exec/install.php
+++ b/ecrire/exec/install.php
@@ -267,7 +267,7 @@ function install_4()
 
 	// Message pour spip_query : tout va bien !
 	$GLOBALS['db_ok'] = true;
-	$GLOBALS['spip_connect_version'] = 0.2; # cf. inc_version
+	$GLOBALS['spip_connect_version'] = 0.3;
 
 	// Test si SPIP deja installe
 	spip_query("SELECT COUNT(*) FROM spip_meta");
@@ -305,21 +305,21 @@ function install_4()
 
 
 	if ($result_ok && $maj_ok) {
-		###### format a changer, a terme...
+		if (preg_match(',(.*):(.*),', $adresse_db, $r))
+			list(,$adresse_db, $port) = $r;
+		else
+			$port = '';
 		$conn = "<"."?php\n";
 		$conn .= "if (!defined(\"_ECRIRE_INC_VERSION\")) return;\n";
-		$conn .= "\$GLOBALS['spip_connect_version'] = 0.2;\n";
-		$conn .= "include_spip('base/db_mysql');\n";
+		$conn .= "\$GLOBALS['spip_connect_version'] = 0.3;\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','$port','$login_db','$pass_db','$sel_db'"
+			. ");\n";
 		$conn .= "?".">";
-		if ($myFile =
-		@fopen(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, "wb")) {
-			fputs($myFile, $conn);
-			fclose($myFile);
-		}
-		else
+
+		if (!ecrire_fichier(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP,
+		$conn))
 			redirige_par_entete(generer_url_ecrire('install'));
 
 		echo "<B>"._T('info_base_installee')."</B><P>\n"._T('info_etape_suivante_1');
@@ -589,7 +589,7 @@ function install_ldap4()
 		echo "<BR />\n<FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=3>"._T('info_reglage_ldap')."</FONT>";
 		echo "<P>";
 
-		$conn = join('', file(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP));
+		lire_fichier(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, $conn);
 		if ($p = strpos($conn, '?'.'>')) 
 			$conn = substr($conn, 0, $p);
 		if (!strpos($conn, 'spip_connect_ldap')) {
@@ -602,9 +602,7 @@ function install_ldap4()
 			$conn .= "\$GLOBALS['ldap_present'] = true;\n";
 		}
 		$conn .= "?".">";
-		$myFile = fopen(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, "wb");
-		fputs($myFile, $conn);
-		fclose($myFile);
+		ecrire_fichier(_FILE_CONNECT_INS . _FILE_TMP . _EXTENSION_PHP, $conn);
 
 		echo generer_url_post_ecrire('install');
 		echo "<INPUT TYPE='hidden' NAME='etape' VALUE='ldap5'>";
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index 4bf74ff7afd20903025034c97de1c98c24e7ecbb..c3be03e3622a24a66a5db92430699e1d93280875 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -1745,8 +1745,8 @@ function envoi_link($nom_site_spip, $rubrique="") {
 	. generer_url_public('style_prive', $args) .'" />
 '
 	// CSS calendrier
-	. '<link rel="stylesheet" type="text/css" href="' . _DIR_IMG_PACK
-	. 'calendrier.css"  />' . "\n"
+	. '<link rel="stylesheet" type="text/css" href="'
+	. find_in_path('calendrier.css') .'" />' . "\n"
 
 	// CSS imprimante (masque des trucs, a completer)
 	. '<link rel="stylesheet" type="text/css" href="' . _DIR_IMG_PACK
@@ -1761,7 +1761,9 @@ function envoi_link($nom_site_spip, $rubrique="") {
 	. 'spip_style_visible.css"  title="visible" />' . "\n"
 
 	// favicon.ico
-	  . '<link rel="shortcut icon" href="' . _DIR_IMG_PACK . "favicon.ico\" />\n";
+	. '<link rel="shortcut icon" href="'
+	. url_absolue('x/'.find_in_path('favicon.ico')) # petit hack sur l'url
+	. "\" />\n";
 	$js = debut_javascript($connect_statut == "0minirezo"
 			AND $connect_toutes_rubriques,
 			($GLOBALS['meta']["activer_statistiques"] != 'non'));
diff --git a/ecrire/inc/texte.php b/ecrire/inc/texte.php
index fcb617831134e199e115c49686996f310939e696..194f077577da500fa248a9429ec6e66ee5b44698 100644
--- a/ecrire/inc/texte.php
+++ b/ecrire/inc/texte.php
@@ -45,7 +45,7 @@ function definir_puce() {
 	if (!isset($les_puces[$p])) {
 		tester_variable($p, 'AUTO');
 		if ($GLOBALS[$p] == 'AUTO') {
-			$img = find_in_path($p.'.gif', _DIR_IMG_PACK);
+			$img = find_in_path($p.'.gif');
 			list(,,,$size) = @getimagesize($img);
 			$img = '<img src="'.$img.'" '
 				.$size.' alt="-" border="0" />';
diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index a724dc86c80337201589a6b07d42603343b96905..8a7889821b5d11f91b8e1ad9331148a5806f9b5a 100644
--- a/ecrire/inc/utils.php
+++ b/ecrire/inc/utils.php
@@ -16,15 +16,17 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 // Gestion des inclusions et infos repertoires
 //
 
+# fonction obsolete, assurant la compatilibite ascendante
 function include_ecrire($file, $silence=false) {
 # Hack pour etre compatible avec les mes_options qui appellent cette fonction
 	define('_DIR_INCLUDE', _DIR_RESTREINT);
 	preg_match('/^((inc_)?([^.]*))(\.php[3]?)?$/', $file, $r);
 
 	// Version new style, surchargeable
-	# cas speciaux inc/index => indexation ; inc_db_mysql => base/db_mysql
+	# cas speciaux
 	if ($r[3] == 'index') return include_spip('inc/indexation');
 	if ($r[3] == 'db_mysql') return include_spip('base/db_mysql');
+	if ($r[3] == 'connect') { spip_connect(); return; }
 
 	# cas general
 	if ($f=include_spip('inc/'.$r[3]))
@@ -204,7 +206,27 @@ function spip_connect() {
 	static $t;
 	if ($t++) return;
 
+	include_spip('base/db_mysql');
 	include_once(_FILE_CONNECT);
+
+	// Version courante = 0.3
+	//
+	// les versions 0.1 et 0.2 fonctionnent toujours, meme si :
+	// - la version 0.1 est moins performante que la 0.2
+	// - la 0.2 fait un include_ecrire('inc_db_mysql.php3')
+	// En tout cas on ne force pas la mise a niveau
+	if ($GLOBALS['spip_connect_version'] >= 0.1)
+		return;
+
+	// La version 0.0 (non numerotee) doit etre refaite
+	if ($GLOBALS['spip_connect_version'] < 0.1) {
+		if (!_DIR_RESTREINT) {
+			$GLOBALS['db_ok'] = false;
+			return;
+		}
+		redirige_par_entete(
+			generer_url_ecrire('upgrade', 'reinstall=oui', true));
+	}
 }
 
 function spip_query($query) {
@@ -215,20 +237,10 @@ function spip_query($query) {
 		// Essaie de se connecter
 		if (_FILE_CONNECT)
 			spip_connect();
-		# else ????
-	}
-
-	// Erreur de connexion
-	if (!$GLOBALS['db_ok'])
-		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;}
-		redirige_par_entete(
-			generer_url_ecrire('upgrade', 'reinstall=oui', true));
+		// Erreur de connexion
+		if (!$GLOBALS['db_ok'])
+			return;
 	}
 
 	// Faire la requete
diff --git a/ecrire/public/admin.php b/ecrire/public/admin.php
index 8fff347adbe8b46d0f7704a61acce80dd2e1c0d4..63ef3fb7ade719a2efa10d24237062c2a6c6cc5c 100644
--- a/ecrire/public/admin.php
+++ b/ecrire/public/admin.php
@@ -16,7 +16,8 @@
 // Feuilles de style admin : d'abord la CSS officielle, puis la perso,
 
 function affiche_boutons_admin($contenu) {
-	$css = "<link rel='stylesheet' href='"._DIR_IMG_PACK."spip_admin.css' type='text/css' />\n";
+	$css = "<link rel='stylesheet' href='".find_in_path('spip_admin.css')
+	. "' type='text/css' />\n";
 	if ($f = find_in_path('spip_admin_perso.css'))
 		$css .= "<link rel='stylesheet' href='$f' type='text/css' />\n";
 
diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index f2b233ce872f8c71a64f923f2c8d1d75a4d4301b..537ff21f74fff48a210c1206d321d58c8b73c378 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -66,8 +66,7 @@ function balise_LANG_DIR_dist($p) {
 }
 
 function balise_PUCE_dist($p) {
-	$_lang = champ_sql('lang', $p);
-	$p->code = "((lang_dir(($_lang ? $_lang : \$GLOBALS['spip_lang']),false,true) && \$GLOBALS['puce_rtl']) ? \$GLOBALS['puce_rtl'] : \$GLOBALS['puce'])";
+	$p->code = "definir_puce()";
 	$p->interdire_scripts = false;
 	return $p;
 }
diff --git a/ecrire/public/debug.php b/ecrire/public/debug.php
index 6357c50fb8c53dbc27ebf98688280970e490b544..ca203778872aab94f1567d659968a116a5c1d9e5 100644
--- a/ecrire/public/debug.php
+++ b/ecrire/public/debug.php
@@ -341,7 +341,8 @@ function debug_dumpfile ($texte, $fonc, $type) {
 	   _T('admin_debug') . ' ' .
 	   supprimer_tags(extraire_multi($GLOBALS['meta']['nom_site']))), 
 	  "</title>\n",
-	  "<link rel='stylesheet' href='"._DIR_IMG_PACK."spip_admin.css' type='text/css'>",
+	  "<link rel='stylesheet' href='".find_in_path('spip_admin.css')
+	  . "' type='text/css'>",
 	  "</head>\n<body style='margin:0 10px;'>",
 	  "\n<div id='spip-debug' style='position: absolute; top: 22px; z-index: 1000;height:97%;left:10px;right:10px;'><div id='spip-boucles'>\n"; 
 
diff --git a/htaccess.txt b/htaccess.txt
index 975f6007e9e83231b4d13dcd8c9a9b10c4a58e43..cade5885d98acaf5747826098b34db1bb739fc16 100644
--- a/htaccess.txt
+++ b/htaccess.txt
@@ -75,8 +75,10 @@ RewriteRule breve([0-9]+)\.html$	spip.php?page=breve&id_breve=$1 [QSA,L]
 RewriteRule mot([0-9]+)\.html$		spip.php?page=mot&id_mot=$1 [QSA,L]
 RewriteRule auteur([0-9]+)\.html$	spip.php?page=auteur&id_auteur=$1 [QSA,L]
 RewriteRule site([0-9]+)\.html$	spip.php?page=site&id_syndic=$1 [QSA,L]
-# Compatibilite avec les URLS "standard"
+# Compatibilite avec les anciennes URLS appelant directement des fichiers php
 RewriteRule ^(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|resume|sommaire|sommaire_texte)\.php3?$	spip.php?page=$1 [QSA,L]
+RewriteRule ^spip_cal\.php3?$	spip.php?action=ical [QSA,L]
+RewriteRule ^spip_rss\.php3?$	spip.php?action=rss [QSA,L]
 # Fin compatibilite
 ###
 
diff --git a/inc-public.php3 b/inc-public.php3
index 0a64fc1c600e00bc3352a3490866ecbc0984168a..4c37dfd1300a8a3454f386e7bd9faed8e75ff28b 100644
--- a/inc-public.php3
+++ b/inc-public.php3
@@ -1,4 +1,6 @@
 <?php
-	# fantome
+	# fichier fantome pour assurer la compatibilite ascendante
+	# une fois tous les fichiers *.php3 supprimes de la racine, vous
+	# pouvez eliminer celui-ci aussi
 	include('spip.php');
 ?>
diff --git a/puce.gif b/puce.gif
deleted file mode 100644
index c005a6c5a6de60bdc72928e0b09e54fd82faa656..0000000000000000000000000000000000000000
Binary files a/puce.gif and /dev/null differ
diff --git a/puce_rtl.gif b/puce_rtl.gif
deleted file mode 100644
index ab5e910fa86d97823a44848d938a7daeae3ba736..0000000000000000000000000000000000000000
Binary files a/puce_rtl.gif and /dev/null differ
diff --git a/spip_cal.php3 b/spip_cal.php3
deleted file mode 100644
index 17fe296dbff22d0e6d57da5c639909b252e7b729..0000000000000000000000000000000000000000
--- a/spip_cal.php3
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-/***************************************************************************\
- *  SPIP, Systeme de publication pour l'internet                           *
- *                                                                         *
- *  Copyright (c) 2001-2006                                                *
- *  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.   *
-\***************************************************************************/
-
-// script obsolete remplace par le generique spip_action 
-// conserve pour compatibilite avec spip < 1.9
-
-$id_auteur = $_GET['id'];
-$arg = $_GET['cle'];
-$action = 'ical';
-include ("spip_action.php");
-?>
diff --git a/spip_rss.php b/spip_rss.php
deleted file mode 100644
index 0113a51d140d39d02f2277ea7e2d11975a7a7bd9..0000000000000000000000000000000000000000
--- a/spip_rss.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-/***************************************************************************\
- *  SPIP, Systeme de publication pour l'internet                           *
- *                                                                         *
- *  Copyright (c) 2001-2006                                                *
- *  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.   *
-\***************************************************************************/
-
-$action = "rss";
-include("spip_action.php");
-?>