diff --git a/inc-cache.php3 b/inc-cache.php3
index 831bea977125bdf96bf89769f760a38b951765ab..8fba13468cf30e6a97a8562db4d47ab845679a0c 100644
--- a/inc-cache.php3
+++ b/inc-cache.php3
@@ -92,7 +92,7 @@ function ramener_squelette($squelette)
   $f=fopen($phpfile, "wb"); 
   fwrite($f,"<?php # $squelette pid: " .  getmypid() ."\n");
   fwrite($f,$r);
-  fwrite($f,'?>');
+  fwrite($f,'?'.'>');
   fclose($f);
   flock($lock, LOCK_UN);
   spip_log("Squelette $squelette: ($nom)"  . strlen($r) . " octets, $timer ms");
@@ -183,7 +183,7 @@ function ramener_cache($cle, $calcul, $contexte, &$fraicheur)
   # - recherche (trop couteux de mémoriser une recherche précise)
   # - valeurs hors URL (i.e. POST) sauf Forum qui les traite à part
   
-  if ($GLOBALS['var_recherche']||
+  if ($GLOBALS['recherche']||
       ($HTTP_POST_VARS && !$GLOBALS['ajout_forum']))
       {
 	include_local('inc-calcul.php3');
@@ -230,9 +230,9 @@ function ramener_cache($cle, $calcul, $contexte, &$fraicheur)
   else
     flock($lock, LOCK_UN);
 #  spip_log("obtient verrou $cle et libère le général"); 
-  if ((!timeout(false,false)) OR
-      ($usefile && ($r = page_perenne($lock2, $file, $fraicheur))))
+  if ($usefile AND ($r = page_perenne($lock2, $file, $fraicheur)))
     {
+    timeout(false,false);
 #      spip_log("libère verrou $cle (page perenne)"); 
       flock($lock2, LOCK_UN);
       return $r;
diff --git a/inc-calcul.php3 b/inc-calcul.php3
index 0a5d259563974be2bc7e3f77723ecf62a587be91..0fd0d76688d7ef8f459dfb9743ac8a19a825b35c 100644
--- a/inc-calcul.php3
+++ b/inc-calcul.php3
@@ -84,11 +84,21 @@ function cherche_page_incluse($cache, $contexte)
 function calculer_page_globale($cache, $fond, $var_recherche)
  {
    global $spip_lang;
+
    $contexte = $GLOBALS['HTTP_GET_VARS'];
    if ($GLOBALS['date'])
     $contexte['date'] = $contexte['date_redac'] = normaliser_date($GLOBALS['date']);
   else
     $contexte['date'] = $contexte['date_redac'] = date("Y-m-d H:i:s");
+
+	// Analyser les URLs personnalisees (inc-urls-...)
+	/* attention c'est assez sale */
+	global $contexte;
+	$fichier_requete = $GLOBALS['REQUEST_URI'];
+	$fichier_requete = strtr($fichier_requete, '?', '&');
+	$fichier_requete = eregi_replace('&(submit|valider|PHPSESSID|(var_[^=&]*)|recalcul)=[^&]*', '', $fichier_requete);
+	recuperer_parametres_url($fond, $fichier_requete);
+	/* fin du truc sale */
   
    $id_rubrique_fond = 0;
    $lang = $contexte['lang'];	// si inc-urls veut fixer la langue