diff --git a/ecrire/action/rss.php b/ecrire/action/rss.php
deleted file mode 100644
index c865add26c55b82d23909a851812fa374ff937cd..0000000000000000000000000000000000000000
--- a/ecrire/action/rss.php
+++ /dev/null
@@ -1,138 +0,0 @@
-<?php
-
-/***************************************************************************\
- *  SPIP, Systeme de publication pour l'internet                           *
- *                                                                         *
- *  Copyright (c) 2001-2008                                                *
- *  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;
-
-// Ce script n'est plus utile qu'a la compatibilite avec les liens
-// produits par l'ancienne definition de bouton_spip_rss
-
-include_spip('inc/acces');
-include_spip('inc/texte'); // utile pour l'espace public, deja fait sinon
-
-// On recoit un op (operation) + args (arguments)
-// + id (id_auteur) + cle (low_sec(id_auteur, "op args"))
-// On verifie que la cle correspond
-// On cree ensuite le RSS correspondant a l'operation
-
-// 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
-
-// http://doc.spip.org/@action_rss_dist
-function action_rss_dist()
-{
-	$op  = _request('op');
-	$args = _request('args');
-	$cle = _request('cle');
-	$id = _request('id');
-	$lang = _request('lang');
-
-	spip_timer('rss');
-	if (verifier_low_sec($id, $cle, "rss $op $args")) {
-		lang_select($lang);
-		$op = str_replace('-', '_', $op);
-		$contexte = $_REQUEST;
-		$contexte['cle'] = afficher_low_sec($id, $op, $args);
-		$contexte['fond'] = 'prive/rss/' . $op;
-			foreach (split(':', $args) as $bout) {
-			list($var, $val) = split('-', $bout, 2);
-			$contexte[$var] = $val;
-			}
-		$f = charger_fonction($op, 'rss', true);
-		if ($f) $contexte = $f($contexte);
-	} else $contexte = '';
-	if ($contexte) {
-		$r = evaluer_fond ('', $contexte);
-		echo $r['texte'];
-		$message ="spip_rss s'applique sur " . $contexte['fond'] . " et $args pour $id par $f cle " . $contexte['cle'];
-	} else 	$message = ("spip_rss sur '$op $args pour $id' incorrect");
-	spip_log("$message (" . spip_timer('rss') .')');
-	exit;
-}
-
-// Dans quelques cas le contexte doit etre revu
-// Il faudrait les eliminer, et gerer la compatibilite autrement
-
-# Compatibilite des anciens liens, inutile pour les nouveaux.
-// http://doc.spip.org/@rss_revisions
-function  rss_revisions($a)
-{
-	if (isset($a['langue_choisie'])) {
-		$a['lang'] = $a['langue_choisie'];
-		unset($a['langue_choisie']);
-	}
-	if (isset($a['id_auteur'])) {
-	  $a['statut'] = 'prepa';
-	} else {
-	  $a['statut'] = '';
-	}
-	include_spip('inc/suivi_versions');
-	return $a;
-}
-// suivi public des forums publics 
-// Ne sert plus qu'a la compatibilite, c'est du squelette public a present
-// http://doc.spip.org/@rss_forum
-function rss_forum($a)
-{
-	if ($id = intval($a['id_article'])) {
-		$a['fond'] = 'rss_forum_article';
-	}
-	else if ($id = intval($a['id_syndic'])) {
-		$a['fond'] = 'rss_forum_syndic';
-	}
-	else if ($id = intval($a['id_breve'])) {
-		$a['fond'] = 'rss_forum_breve';
-	}
-	else if ($id = intval($a['id_rubrique'])) {
-		$a['fond'] = 'rss_forum_rubrique';
-	}
-	else if ($id = intval($a['id_thread'])) {
-		$a['fond'] = 'rss_forum_thread';
-	} else { $a ='';}
-
-	return $a;
-}
-
-# suivi prive de tous les forums
-// Ne sert plus qu'a la compatibilite, cf les squeletes forums_$page a present
-// http://doc.spip.org/@rss_forums
-function  rss_forums($a)
-{
-	switch ($a['page']) {
-	case 'public':
-		$a['statut'] = array('publie','prop','off','spam');
-		$a['texte'] = '.';
-		return $a;
-	case 'prop':
-		$a['statut'] = array('prop');
-		$a['texte'] = '.*';
-		return $a;
-	case 'spam':
-		$a['statut'] = array('spam');
-		$a['texte'] = '.*';
-		return $a;
-	case 'interne':
-		$a['statut'] = array('prive','privac','privoff','privadm');
-		$a['texte'] = '.';
-		return $a;
-	case 'vide':
-		$a['statut'] = array('publie','off','prive','privac','privoff','privadm');
-		$a['texte'] = '^$';
-		return $a;
-	default:
-		return '';
-	}
-}
-
-
-?>
diff --git a/ecrire/public.php b/ecrire/public.php
index e0faaf7d28bfaac1af5f133063a4f8ebddd41783..542c5148522c260924b726417465397556ad7870 100644
--- a/ecrire/public.php
+++ b/ecrire/public.php
@@ -69,7 +69,11 @@ else {
 			echo minipres();
 			exit;
 		}
-
+		// l'argument Page a priorite sur l'argument action
+		// le cas se presente a cause des RewriteRule d'Apache
+		// qui permettent d'ajouter un argument dans la QueryString
+		// mais pas d'en retirer un en conservant les autres.
+		unset($_GET['action']);
 	# par defaut
 	} else {
 		// traiter le cas pathologique d'un upload de document ayant echoue
diff --git a/htaccess.txt b/htaccess.txt
index 91276f0c79d491d2727d30a9f6c4415bf1e5c18f..2735d91085a9929bb91008a8da9b227ecb7ace88 100644
--- a/htaccess.txt
+++ b/htaccess.txt
@@ -44,6 +44,13 @@ RewriteBase /
 
 ################ GESTIONS DES URLS SPIP #######################
 
+# Deux pseudo-actions a present evacuees
+# N'y at-il pas moyen de REMPLACER un nom dans la QueryString ?
+RewriteCond %{QUERY_STRING} action=rss
+RewriteRule spip.php	spip.php?page=rss [QSA,L]
+RewriteCond %{QUERY_STRING} action=ical
+RewriteRule spip.php	spip.php?page=ical_prive [QSA,L]
+
 ###
 # Si le fichier ou repertoire demande existe
 # ignorer toutes les regles qui suivent
@@ -68,8 +75,10 @@ RewriteRule ^site([0-9]+)(\.html)?$	spip.php?page=site&id_syndic=$1 [QSA,L]
 RewriteRule ^(rubrique|article|breve|mot|auteur|site|agenda|backend|backend-breves|distrib|forum|ical|plan|recherche|sommaire|sommaire_texte)\.php3?$	spip.php?page=$1 [QSA,L]
 RewriteRule ^resume.php[3]?	spip.php?page=sommaire [QSA,L]
 RewriteRule ^page.php[3]?	spip.php [QSA,L]
-RewriteRule ^spip_cal\.php3?$	spip.php?action=ical [QSA,L]
-RewriteRule ^spip_rss\.php3?$	spip.php?action=rss [QSA,L]
+RewriteRule ^spip_cal\.php3?$	spip.php?page=ical_prive [QSA,L]
+RewriteRule ^spip_rss\.php3?$	spip.php?page=rss [QSA,L]
+
+
 # Fin compatibilite
 ###