diff --git a/ecrire/public/boucles.php b/ecrire/public/boucles.php
index 7141c818f4259ab90a790f009b087a5997d3c724..aa046b55d29070a50076c8ad1ba49b8a469b3d1c 100644
--- a/ecrire/public/boucles.php
+++ b/ecrire/public/boucles.php
@@ -58,7 +58,7 @@ function boucle_ARTICLES_dist($id_boucle, &$boucles) {
 	$mstatut = $id_table .'.statut';
 
 	// Restreindre aux elements publies
-	if (!$boucle->statut) {
+	if (!$boucle->modificateur['criteres']['statut']) {
 		if (!$GLOBALS['var_preview']) {
 			$boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
 			if ($GLOBALS['meta']["post_dates"] == 'non')
@@ -80,7 +80,7 @@ function boucle_AUTEURS_dist($id_boucle, &$boucles) {
 	$mstatut = $id_table .'.statut';
 
 	// Restreindre aux elements publies
-	if (!$boucle->statut) {
+	if (!$boucle->modificateur['criteres']['statut']) {
 		// Si pas de lien avec un article, selectionner
 		// uniquement les auteurs d'un article publie
 		if (!$GLOBALS['var_preview'])
@@ -110,7 +110,7 @@ function boucle_BREVES_dist($id_boucle, &$boucles) {
 	$mstatut = $id_table .'.statut';
 
 	// Restreindre aux elements publies
-	if (!$boucle->statut) {
+	if (!$boucle->modificateur['criteres']['statut']) {
 		if (!$GLOBALS['var_preview'])
 			$boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
 		else
@@ -137,7 +137,7 @@ function boucle_FORUMS_dist($id_boucle, &$boucles) {
 		$boucle->where[]= array("'='", "'$id_table." ."id_parent'", 0);
 	}
 	// Restreindre aux elements publies
-	if (!$boucle->statut) {
+	if (!$boucle->modificateur['criteres']['statut']) {
 		if ($GLOBALS['var_preview'])
 			$boucle->where[]= array("'IN'", "'$mstatut'", "'(\"publie\",\"prive\")'");		
 		else
@@ -160,7 +160,7 @@ function boucle_SIGNATURES_dist($id_boucle, &$boucles) {
 	$boucle->from[$id_table] =  "spip_signatures";
 
 	// Restreindre aux elements publies
-	if (!$boucle->statut) {
+	if (!$boucle->modificateur['criteres']['statut']) {
 		$boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
 	}
 	return calculer_boucle($id_boucle, $boucles); 
@@ -193,7 +193,7 @@ function boucle_RUBRIQUES_dist($id_boucle, &$boucles) {
 	$mstatut = $id_table .'.statut';
 
 	// Restreindre aux elements publies
-	if (!$boucle->statut) {
+	if (!$boucle->modificateur['criteres']['statut']) {
 		if (!$GLOBALS['var_preview'])
 			if (!isset($boucle->modificateur['tout']))
 				$boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
@@ -244,7 +244,7 @@ function boucle_SYNDICATION_dist($id_boucle, &$boucles) {
 
 	// Restreindre aux elements publies
 
-	if (!$boucle->statut) {
+	if (!$boucle->modificateur['criteres']['statut']) {
 		if (!$GLOBALS['var_preview']) {
 			$boucle->where[]= array("'='", "'$mstatut'", "'\"publie\"'");
 		} else
@@ -264,7 +264,7 @@ function boucle_SYNDIC_ARTICLES_dist($id_boucle, &$boucles) {
 	$mstatut = $id_table .'.statut';
 
 	// Restreindre aux elements publies, sauf critere contraire
-	if ($boucle->statut) {}
+	if ($boucle->modificateur['criteres']['statut']) {}
 	else if ($GLOBALS['var_preview'])
 		$boucle->where[]= array("'IN'", "'$mstatut'", "'(\"publie\",\"prop\")'");
 	else {
diff --git a/ecrire/public/criteres.php b/ecrire/public/criteres.php
index 4f8136a683022f45bd6c3349c08cb1bd00d63f07..7fbe7e88de1c8222144bbd2051013c9e193b72d7 100644
--- a/ecrire/public/criteres.php
+++ b/ecrire/public/criteres.php
@@ -690,11 +690,14 @@ function calculer_critere_infixe($idb, &$boucles, $crit) {
 			$table = $calculer_critere_externe($boucle, $boucle->jointures, $col, $desc, ($crit->cond OR $op !='='), $t);
 	  }
 	}
+	// tag du critere pour permettre aux boucles de modifier leurs requetes par defaut en fonction de ca
+	$boucles[$idb]->modificateur['criteres'][$col] = true;
+	
 	// ajout pour le cas special d'une condition sur le champ statut:
 	// il faut alors interdire a la fonction de boucle
 	// de mettre ses propres criteres de statut
 	// http://www.spip.net/@statut (a documenter)
-
+	// garde pour compatibilite avec code des plugins anterieurs, mais redondant avec la ligne precedente
 	if ($col == 'statut') $boucles[$idb]->statut = true;
 
 	// ajout pour le cas spécial des forums