diff --git a/ecrire/inc_accueil.php b/ecrire/inc_accueil.php
index e891ce3ccfa21aa9b2c22e894d393f122aca9d4d..8df827373b8463a1560afb2a28abb43e1e9cc195 100644
--- a/ecrire/inc_accueil.php
+++ b/ecrire/inc_accueil.php
@@ -262,9 +262,7 @@ if ($spip_display != 4) {
 			    list($titre, $descr) = $r;
 			    $rubs[] = "<a title='" .
 			      typo($descr) .
-			      "' href='" .
-			      generer_url_ecrire('naviguer', "id_rubrique=$id_rubrique") .
-			      "'>" .
+			      "' href='" . generer_url_ecrire('naviguer', "id_rubrique=$id_rubrique") . "'>" .
 			      typo($titre) .
 			      '</a>';
 			  }
diff --git a/ecrire/inc_admin_vider.php b/ecrire/inc_admin_vider.php
index 5073ab01518719a9657eb94ea96e526af1c2942a..5613f8ab86aca051f813dd356e1b79d146f61ea4 100644
--- a/ecrire/inc_admin_vider.php
+++ b/ecrire/inc_admin_vider.php
@@ -110,8 +110,7 @@ if ($quota_cache) {
   "\n<input type='hidden' name='arg' value='$arg' />",
   "\n<input type='hidden' name='id_auteur' value='$connect_id_auteur' />", 
   "\n<input type='hidden' name='hash' value='$hash' />", 
-  "\n<input type='hidden' name='redirect' value='",
-  generer_url_ecrire("admin_vider"),
+  "\n<input type='hidden' name='redirect' value='", generer_url_ecrire("admin_vider"),
   "' />", 
   "\n<p><div align='right'><input class='fondo' type='submit' value=\"",
   str_replace('"', '&quot;', _T('bouton_vider_cache')),
@@ -141,8 +140,7 @@ if ($quota_cache) {
    "\n<input type='hidden' name='arg' value='$arg' />",
    "\n<input type='hidden' name='id_auteur' value='$connect_id_auteur' />",
    "\n<input type='hidden' name='hash' value='$hash' />",
-   "\n<input type='hidden' name='redirect' value='",
-   generer_url_ecrire("admin_vider"),
+   "\n<input type='hidden' name='redirect' value='",generer_url_ecrire("admin_vider"),
    "' />", 
    "\n<p><DIV align='right'><input class='fondo' type='submit'  value=\"",
    str_replace('"', '&quot;', _T('bouton_vider_cache')),
diff --git a/ecrire/inc_aide_index.php b/ecrire/inc_aide_index.php
index 3688c1d0a3517d446c9d8e5542a6d747b66b8f11..9ace998392c39a2a90b383f0624b770a3ac7d2b7 100644
--- a/ecrire/inc_aide_index.php
+++ b/ecrire/inc_aide_index.php
@@ -206,8 +206,7 @@ table.spip td {
 <TR WIDTH=100% HEIGHT=60%>
 <TD WIDTH=100% HEIGHT=60% ALIGN="center" VALIGN="middle">
 <CENTER>
-<img src="',
-		  generer_url_ecrire("aide_index", "img=AIDE--logo-spip.gif"),
+<img src="', generer_url_ecrire("aide_index", "img=AIDE--logo-spip.gif"),
 		  '" alt="SPIP" width="300" height="170" border="0">
 </CENTER>
 </TD></TR></TABLE>';
diff --git a/ecrire/inc_ajax_page.php b/ecrire/inc_ajax_page.php
index 26b68c84c796079229a353203276b58ca979ef7c..2bf03959fad58fc36ba9422ef342b27474a52f48 100644
--- a/ecrire/inc_ajax_page.php
+++ b/ecrire/inc_ajax_page.php
@@ -200,8 +200,7 @@ function ajax_page_aff_nav_recherche($id, $exclus, $col, $id_ajax_fonc, $type, $
 	include_ecrire("inc_texte");
 	include_ecrire("inc_mini_nav");
 	echo mini_nav ($id, "aff_nav_recherche", 
-			"document.location.href='" .
-			generer_url_ecrire('naviguer', "id_rubrique=::sel::") .
+			"document.location.href='" . generer_url_ecrire('naviguer', "id_rubrique=::sel::") .
 			"';", 0, true);
 }
 
diff --git a/ecrire/inc_auteur_infos.php b/ecrire/inc_auteur_infos.php
index 079b227d672dc8aea1ec41484aabfba1f5271333..f2d61df512fe64dcf0f08dc71b51eb5b82774b5c 100644
--- a/ecrire/inc_auteur_infos.php
+++ b/ecrire/inc_auteur_infos.php
@@ -199,8 +199,7 @@ if ($nom OR $statut) {
 
 // Redirection
 if (!$echec AND $redirect_ok == "oui") {
-	redirige_par_entete($redirect ? rawurldecode($redirect) :
-			    generer_url_ecrire("auteurs_edit", "id_auteur=$id_auteur"));
+	redirige_par_entete($redirect ? rawurldecode($redirect) : generer_url_ecrire("auteurs_edit", "id_auteur=$id_auteur"));
 }
 affiche_auteur_info_dist($id_auteur, $auteur,  $echec, $redirect, $ajouter_id_article, $onfocus);
 
diff --git a/ecrire/inc_date.php3 b/ecrire/inc_date.php3
index 491fd7db1dfad1c2fed6c7182202690eef083fa8..d6d033158e33d56dd92d48ec1a979540ca69ef29 100644
--- a/ecrire/inc_date.php3
+++ b/ecrire/inc_date.php3
@@ -101,7 +101,7 @@ function afficher_jour_mois_annee_h_m($date, $heures, $minutes, $suffixe='')
 function afficher_formulaire_date($script, $args, $texte, $jour, $mois, $annee)
 {
   global $couleur_foncee;
-  return generer_url_post_ecrire($script, $args); 
+  return generer_url_post_ecrire($script, $args)
 	. "<table cellpadding='5' cellspacing='0' border='0' width='100%' background='"
 	.  _DIR_IMG_PACK
 	. "rien.gif'>"
diff --git a/ecrire/inc_js_menu_rubriques.php b/ecrire/inc_js_menu_rubriques.php
index 02a718041e8783c862d54fd0a65acf622df32734..ef570dd6ba36b33e7d0d0af0eff4129379f136b2 100644
--- a/ecrire/inc_js_menu_rubriques.php
+++ b/ecrire/inc_js_menu_rubriques.php
@@ -117,8 +117,7 @@ function bandeau_rubrique($id_rubrique, $titre_rubrique, $z = 1) {
 	$i = sizeof($arr_rub);
 	if ($i > 0 AND $zdecal < $zmax) {
 		$ret .= '<div class=\"pos_r\" style=\"z-index: '.$z.';\" onMouseOver=\"montrer(\'b_'.$id_rubrique.'\');\" onMouseOut=\"cacher(\'b_'.$id_rubrique.'\');\">';
-		$ret .= '<div class=\"brt\"><a href=\\"'
-		  . generer_url_ecrire('naviguer', 'id_rubrique='.$id_rubrique)
+		$ret .= '<div class=\"brt\"><a href=\\"' . generer_url_ecrire('naviguer', 'id_rubrique='.$id_rubrique)
 		  . '\\" class=\"bandeau_rub\"'.$image.'>'.addslashes(supprimer_tags($titre_rubrique)).'</a></div>'
 		  . '<div class=\"bandeau_rub\" style=\"z-index: '.($z+1).';\" id=\"b_'.$id_rubrique.'\">';
 		
@@ -144,8 +143,7 @@ function bandeau_rubrique($id_rubrique, $titre_rubrique, $z = 1) {
 		
 		$ret .= "</div></div>";
 	} else {
-		$ret .= '<div><a href=\"'
-		  . generer_url_ecrire('naviguer', 'id_rubrique='.$id_rubrique)
+		$ret .= '<div><a href=\"' . generer_url_ecrire('naviguer', 'id_rubrique='.$id_rubrique)
 		  . '\" class=\"bandeau_rub\"'.$image.'>'.addslashes(supprimer_tags($titre_rubrique)).'</a></div>';
 	}
 	$zdecal = $zdecal - 1;
diff --git a/ecrire/inc_message.php b/ecrire/inc_message.php
index 3052729d3334960d18e687a2f5e7b48fa56cfecf..39339625ac18bb888fbf895b7f4341bc43a925b7 100644
--- a/ecrire/inc_message.php
+++ b/ecrire/inc_message.php
@@ -149,11 +149,10 @@ WHERE messagerie<>'non' AND id_auteur<>'$connect_id_auteur' AND pass<>'' AND log
       $bio_auteur = $row['bio'];
       $res .= "<LI><FONT FACE='Verdana,Arial,Sans,sans-serif' SIZE=2><b><FONT SIZE=3>$nom_auteur</FONT></b>" .
 	($email_auteur ? " ($email_auteur)" : '') .
-	" | <A href='" .
-	generer_url_ecrire('message', "id_message=$id_message&ajout_auteur=oui&nouv_auteur=$id_auteur") .
+	" | <a href='" . generer_url_ecrire('message', "id_message=$id_message&ajout_auteur=oui&nouv_auteur=$id_auteur") .
 	"'>" .
 	_T('lien_ajout_destinataire').
-	"</A>" .
+	"</a>" .
 	(!trim($bio_auteur) ? '' :
 	 ("<br /><FONT SIZE=1>".propre(couper($bio_auteur, 100))."</FONT>\n")) .
 	"</FONT></LI>\n";
diff --git a/ecrire/inc_mini_nav.php b/ecrire/inc_mini_nav.php
index 7be8bd5348afd70ff029574d3fa31767e420ae3b..25947c65ec59027c188c2d708d26a1da8bc2cbce 100644
--- a/ecrire/inc_mini_nav.php
+++ b/ecrire/inc_mini_nav.php
@@ -148,8 +148,7 @@ function mini_nav_principal ($id_rubrique, $rac="", $rub_exclus=0) {
 function mini_nav ($sel, $rac="",$fonction="", $rub_exclus=0, $aff_racine=false) {
 
 	if (!$fonction)
-		$fonction = "document.location='" .
-			generer_url_ecrire('naviguer', "id_rubrique=::sel::") .
+		$fonction = "document.location='" . generer_url_ecrire('naviguer', "id_rubrique=::sel::") .
 			"';";
 
 	global $couleur_foncee, $spip_lang_right, $spip_lang_left;
diff --git a/ecrire/inc_minipres.php b/ecrire/inc_minipres.php
index 9aabda758845b26796c06863c08d563668d5b38c..07d55c9ba77060c51666580693c66b2dbb950539 100644
--- a/ecrire/inc_minipres.php
+++ b/ecrire/inc_minipres.php
@@ -39,8 +39,7 @@ function install_debut_html($titre = 'AUTO') {
 	  "<title>",
 	  $titre,
 	  "</title>\n" ,
-	  '<link rel="stylesheet" type="text/css" href=\'' ,
-	  generer_url_ecrire('spip_style', $args_color),
+	  '<link rel="stylesheet" type="text/css" href=\'', generer_url_ecrire('spip_style', $args_color),
 	  "'>
 <style type='text/css'>
 <!--
@@ -75,8 +74,7 @@ function aide($aide='') {
 
 	if (!$aide OR $spip_display == 4) return;
 
-	return "&nbsp;&nbsp;<a class='aide' href='" 
-		. generer_url_ecrire("aide_index", "aide=$aide&var_lang=$spip_lang")
+	return "&nbsp;&nbsp;<a class='aide' href='" . generer_url_ecrire("aide_index", "aide=$aide&var_lang=$spip_lang")
 		. "' target=\"spip_aide\" "
 		. "onclick=\"javascript:window.open(this.href,"
 		. "'spip_aide', 'scrollbars=yes, resizable=yes, width=740, "
@@ -191,7 +189,7 @@ function http_href_img($href, $img, $att, $title='', $style='', $class='', $evt=
 
 function generer_url_post_ecrire($script, $args='', $name='', $ancre='') {
 	$hidden = "";
-	$action = generer_url_ecrire($script, $args) ;
+	$action = generer_url_ecrire($script, $args, false, true) ;
 	if ($p = strpos($action, '?'))
 	  foreach(preg_split('/&(amp;)?/',substr($action,$p+1)) as $c) {
 		$hidden .= "\n<input name='" . 
diff --git a/ecrire/inc_mots_tous.php b/ecrire/inc_mots_tous.php
index 1635f873efc83d17d0d4417db316a60c6389fdd9..4736dabc190c5ee83176755b29fd56c7a62f1470 100644
--- a/ecrire/inc_mots_tous.php
+++ b/ecrire/inc_mots_tous.php
@@ -142,8 +142,7 @@ if ($conf_mot>0) {
 	echo _T('info_delet_mots_cles', array('titre_mot' => $titre_mot, 'type_mot' => $type_mot, 'texte_lie' => $texte_lie));
 
 	echo "<UL>";
-	echo "<LI><B><A href='",
-	  generer_url_ecrire('mots_edit', "supp_mot=$id_mot&redirect_ok=oui&redirect=" . generer_url_ecrire('mots_tous')),
+	echo "<LI><B><A href='", generer_url_ecrire('mots_edit', "supp_mot=$id_mot&redirect_ok=oui&redirect=" . generer_url_ecrire('mots_tous')),
 	  "'>",
 	  _T('item_oui'),
 	  "</A>,</B> ",
diff --git a/ecrire/inc_naviguer.php b/ecrire/inc_naviguer.php
index a595c3adae9798e482f9362e6d0207e6e0affe3e..f22003aa85261605e955efbc5c743f308c3ccceb 100644
--- a/ecrire/inc_naviguer.php
+++ b/ecrire/inc_naviguer.php
@@ -186,8 +186,7 @@ function infos_naviguer($id_rubrique, $statut)
 			  echo 
 				http_img_pack('admin-12.gif','',''),
 				$logo,
-			    " <a href='",
-			    generer_url_ecrire('auteurs_edit', "id_auteur=$id"),
+			    " <a href='", generer_url_ecrire('auteurs_edit', "id_auteur=$id"),
 				"'>",
 				extraire_multi($row['nom']),
 				'</a><br />';
@@ -259,8 +258,7 @@ if ($id_rubrique>0 AND $GLOBALS['meta']['multi_rubriques'] == 'oui' AND ($GLOBAL
 
 	echo debut_block_invisible('languesrubrique');
 	echo "<div class='verdana2' align='center'>";
-	$link = new Link(generer_url_ecrire("naviguer","action=coloniser&id_rubrique=$id_rubrique"));
-	echo menu_langues('changer_lang', $langue_rubrique, '', $langue_parent, $link);
+	echo menu_langues('changer_lang', $langue_rubrique, '', $langue_parent, generer_url_ecrire("naviguer","action=coloniser&id_rubrique=$id_rubrique", true, true  ));
 	echo "</div>\n";
 	echo fin_block();
 
diff --git a/ecrire/inc_presentation.php3 b/ecrire/inc_presentation.php3
index 750a64d702436fad99f325065efcfa00333d790a..2aa3feea25ee50473419841175bd09536d50a084 100644
--- a/ecrire/inc_presentation.php3
+++ b/ecrire/inc_presentation.php3
@@ -42,8 +42,6 @@ function bouton_imessage($destinataire, $row = '') {
 	global $couche_invisible;
 	$couche_invisible ++;
 
-	$url = new Link(generer_url_ecrire("message_edit",""));
-
 	// verifier que ce n'est pas un auto-message
 	if ($destinataire == $connect_id_auteur)
 		return;
@@ -56,22 +54,13 @@ function bouton_imessage($destinataire, $row = '') {
 			return;
 		}
 	}
-	$url->addVar('dest',$destinataire);
-	$url->addVar('new','oui');
-	$url->addVar('type','normal');
 
 	if ($destinataire) $title = _T('info_envoyer_message_prive');
 	else $title = _T('info_ecire_message_prive');
 
 	$texte_bouton = http_img_pack("m_envoi$spip_lang_rtl.gif", "m&gt;", "width='14' height='7' border='0'", $title);
 		
-	
-	$ret .= "<a href='". $url->getUrl() ."' title=\"$title\">";
-	$ret .= "$texte_bouton</a>";
-
-	return $ret;
-	
-
+	return "<a href='". generer_url_ecrire("message_edit","new=oui&dest=$destinataire&type=normal"). "' title=\"$title\">$texte_bouton</a>";
 }
 
 // Faux HR, avec controle de couleur
@@ -1705,8 +1694,7 @@ function afficher_forum($request, $adresse_retour, $controle_id_article = false)
 
 			if (!$controle_id_article) {
 				echo "<div align='right' class='verdana1'>";
-				echo "<b><a href='",
-				  generer_url_ecrire("forum_envoi","id_parent=$id_forum&adresse_retour=".rawurlencode($adresse_retour)."&titre_message=".rawurlencode($titre)), 
+				echo "<b><a href='", generer_url_ecrire("forum_envoi","id_parent=$id_forum&adresse_retour=".rawurlencode($adresse_retour)."&titre_message=".rawurlencode($titre)), 
 				  "'>",
 				  _T('lien_repondre_message'),
 				  "</a></b></div>";
@@ -1802,8 +1790,7 @@ function envoi_link($nom_site_spip, $rubrique="")
 	}
 
 	return $res .
-	  '<link rel="stylesheet" type="text/css" href=\'' .
-	  generer_url_ecrire('spip_style', $args_color) .
+	  '<link rel="stylesheet" type="text/css" href=\'' . generer_url_ecrire('spip_style', $args_color) .
 	  "'>\n" .
 	  debut_javascript($connect_statut == "0minirezo" AND $connect_toutes_rubriques, ($GLOBALS['meta']["activer_statistiques"] != 'non')) .
 
@@ -1834,8 +1821,7 @@ function debut_javascript($admin, $stat)
 	if (!$GLOBALS['_COOKIE']['spip_accepte_ajax']) {
 		spip_setcookie('spip_accepte_ajax', -1);
 		$ajax = "if (a = createXmlHttp()) {
-	a.open('GET', '" .
-		  generer_url_ecrire("ajax_page.php","fonction=test") .
+	a.open('GET', '" . generer_url_ecrire("ajax_page.php","fonction=test") .
 		  "', true) ;
 	a.send(null);
 }";
@@ -2364,8 +2350,7 @@ else {
 
 	echo "<td> &nbsp; </td>";
 
-	icone_bandeau_principal (_T('icone_aide_ligne'), "javascript:window.open('" .
-				 generer_url_ecrire("aide_index","var_lang=$spip_lang") .
+	icone_bandeau_principal (_T('icone_aide_ligne'), "javascript:window.open('" . generer_url_ecrire("aide_index","var_lang=$spip_lang") .
 				 "', 'aide_spip', 'scrollbars=yes,resizable=yes,width=740,height=580');",
 		"aide-48".aide_lang_dir($spip_lang,$spip_lang_rtl).".png",
 		"vide", "", generer_url_ecrire("aide_index","var_lang=$spip_lang"),
diff --git a/ecrire/inc_utils.php b/ecrire/inc_utils.php
index 441ed33c51c339a319988ec1fb6a6d462d4fb40d..abdcd1a25dcb36800b42c15e7ac2f4b66350d134 100644
--- a/ecrire/inc_utils.php
+++ b/ecrire/inc_utils.php
@@ -48,15 +48,12 @@ function include_fonction($nom) {
 	if ($f && is_readable($f)) {
 		if (!$GLOBALS['included_files'][$inc]++) include($f);
 	} else {
-		$f = _DIR_INCLUDE . $inc  . '.php';
+		$f = _DIR_INCLUDE . $inc . '.php';
 		if (is_readable($f)) {
 			if (!$GLOBALS['included_files'][$inc]++) include($f);
 		} else {
-		  // provisoire avant renommage 
-			$f = _DIR_INCLUDE . ('inc_' . $nom . _EXTENSION_PHP);
-			if (is_readable($f)) {
-				if (!$GLOBALS['included_files'][$inc]++) include($f);
-			} else  $inc = "";
+		  if (!$f = include_rustine($inc)) # provisoire php/php3
+		    $inc = "";
 		}
 	}
 	$f = str_replace('-','_',$nom); // pour config-fonc etc. A renommer
@@ -71,6 +68,18 @@ function include_fonction($nom) {
 	}
 }
 
+// a supprimer apres renommage php / php3
+
+function include_rustine($inc)
+ {
+	$f = _DIR_INCLUDE . ($inc . _EXTENSION_PHP);
+	if (is_readable($f)) {
+	  if (!$GLOBALS['included_files'][$inc]++)
+	    {include($f); return true;}
+	}
+	return;
+}
+
 
 
 // un pipeline est lie a une action et une valeur
@@ -637,8 +646,8 @@ function charger_generer_url() {
 
 // Ecriture tres tarabiscotee pour assurer la transition php3 & mutualisation
 
-function generer_url_ecrire($script, $args="", $no_entities=false) {
-	$site = $GLOBALS['meta']["adresse_site"];
+function generer_url_ecrire($script, $args="", $no_entities=false, $rel=false) {
+	$site = $rel ? "" : $GLOBALS['meta']["adresse_site"];
 	if ($site)
 	  $site .= ((substr($site,-1) <> '/') ? '/' : '') . _DIR_RESTREINT_ABS;
 	else $site =  _DIR_RESTREINT;
diff --git a/spip_migre b/spip_migre
index cc555e389f771f66c5dc870a9a4f63f3b12927f3..afaa595971c22afbdacf8f3df2a99977d4508116 100755
--- a/spip_migre
+++ b/spip_migre
@@ -31,11 +31,11 @@ do
 done
 
 # Ajouter inc_ a qq fichiers derogatoires 
-
-mv lab_diff.php inc_diff.php
-mv lab_ortho.php inc_ortho.php
-mv lab_revisions.php inc_revisions.php
-mv pclzip.lib.php inc_pclzip.php
+# (+tard: a completer par leur renommage dans le source)
+#mv lab_diff.php inc_diff.php
+#mv lab_ortho.php inc_ortho.php
+#mv lab_revisions.php inc_revisions.php
+#mv pclzip.lib.php inc_pclzip.php
 
 # 2 appels de la fonction pivot qui n'ont pas de php3
 sed  's/\(generer_url_ecrire("[^.]*\).php/\1/' inc_articles.php > a
@@ -43,7 +43,7 @@ mv a inc_articles.php
 sed  's/\(generer_url_ecrire("[^.]*\).php/\1/' inc_presentation.php > b
 mv b inc_presentation.php
 
-# traitement specifique plus tard
+# traitement specifique ci-dessous
 mv inc_version.php3 inc_version
 
 # pour tous les autres, c'est deja bon sauf le .php3 ---> .php
@@ -57,6 +57,7 @@ done
 # et eliminer les sequelles de - en _
 
 grep -v "script = '/'"  inc_utils.php |
+grep -v "= include_rustine" |
 sed 's/$ext=.*"\?/$args = "?exec=$script" . ($args ? "\&$args/; s,$script$ext,,; s/f = str_replace.*$/f = $nom;/' > x
 mv x inc_utils.php