diff --git a/ecrire/inc_filtres.php3 b/ecrire/inc_filtres.php3
index 451a097c7530f796047ab4f8b943594007cf119c..5f26ff2f54f43589cf546a6d580037fa521b538f 100644
--- a/ecrire/inc_filtres.php3
+++ b/ecrire/inc_filtres.php3
@@ -43,6 +43,8 @@ function texte_backend($texte) {
 
 	// " -> " et tout ce genre de choses
 	$texte = entites_html($texte);
+	$texte = str_replace("&", "&", $texte);
+	$texte = str_replace(" ", " ", $texte);
 
 	// verifier le charset
 	$texte = entites_unicode($texte);
diff --git a/ecrire/optimiser.php3 b/ecrire/optimiser.php3
index 9901bf3104a29f029052f2a9584496813227ff37..83a155ce940b8acc60cc9b97cb97ee8ea509219a 100644
--- a/ecrire/optimiser.php3
+++ b/ecrire/optimiser.php3
@@ -288,6 +288,9 @@ function optimiser_base() {
 
 		$suppr = '';
 		$s = spip_query("SELECT id_$type FROM $table_objet WHERE idx='' $critere");
+		while ($t = spip_fetch_array($s))
+			$suppr .= ','.$t[0];
+		$s = spip_query("SELECT id_$type FROM $table_objet WHERE idx='non'");
 		while ($t = spip_fetch_array($s))
 			$suppr .= ','.$t[0];
 		if ($suppr)