diff --git a/library/Class/Catalogue.php b/library/Class/Catalogue.php
index 4a368b5183edf374c984d1ca7cda3197a2053622..15cff3d2f4fa83522b069d7e99992594b9db894f 100644
--- a/library/Class/Catalogue.php
+++ b/library/Class/Catalogue.php
@@ -274,26 +274,38 @@ class Class_Catalogue extends Storm_Model_Abstract {
 		return $ret;
 	}
 
+
+	public function shouldCacheContent() {
+		if (Class_Users::getLoader()->isCurrentUserAdmin())
+			return false;
+
+		return Class_AdminVar::isCacheEnabled();
+	}
+
+
+	public function getNoticesFromCacheByPreferences($preferences, $cache_vignette) {
+		$cache_key = md5(serialize($preferences).$cache_vignette);
+		$cache = Zend_Registry::get('cache');
+
+		if ($this->shouldCacheContent() && $cache->test($cache_key))
+			return unserialize($cache->load($cache_key));
+
+		$notices = $this->_fetchAllNoticesByPreferences($preferences, $cache_vignette);			
+		$cache->save(serialize($notices), $cache_key);
+		return $notices;
+	}
+
 //------------------------------------------------------------------------------
 // Rend les notices selon les preferences (kiosques)
 //------------------------------------------------------------------------------
 	public function getNoticesByPreferences($preferences,$cache_vignette=false)	{
-		$cache_key = md5(serialize($preferences).$cache_vignette);
-		$cache = Zend_Registry::get('cache');
-		if (Class_AdminVar::isCacheEnabled() && $cache->test($cache_key)) {
-			$notices = unserialize($cache->load($cache_key));
-		} else {
-			$notices = $this->_fetchAllNoticesByPreferences($preferences, $cache_vignette);			
-			$cache->save(serialize($notices), $cache_key);
-		}
+		$notices = $this->getNoticesFromCacheByPreferences($preferences, $cache_vignette);
 
-		// Tirage aleatoire
-		if($preferences["aleatoire"]==1)
-		{
-			shuffle($notices);
-			$notices = array_slice ($notices, 0, $preferences["nb_notices"]);   
-		}
-		return $notices;
+		if ($preferences["aleatoire"] !== 1) 
+			return $notices;
+
+		shuffle($notices);
+		return array_slice ($notices, 0, $preferences["nb_notices"]);   
 	}
 
 
diff --git a/library/ZendAfi/View/Helper/Accueil/Base.php b/library/ZendAfi/View/Helper/Accueil/Base.php
index ad74e35c75b32ce497b26b7a56710d972e4166c5..549a66540a434df5bffca6be0c36fdbe65334443 100644
--- a/library/ZendAfi/View/Helper/Accueil/Base.php
+++ b/library/ZendAfi/View/Helper/Accueil/Base.php
@@ -68,7 +68,7 @@ class ZendAfi_View_Helper_Accueil_Base extends ZendAfi_View_Helper_BaseHelper {
 		if (Class_Users::getLoader()->isCurrentUserAdmin())
 			return false;
 
-		return Class_AdminVar::get('CACHE_ACTIF') == '1';
+		return Class_AdminVar::isCacheEnabled();
 	}
 
 
diff --git a/tests/library/Class/CatalogueTest.php b/tests/library/Class/CatalogueTest.php
index 91663c168dc756dbda24d19d1a0f41db18dda485..1ce927d8bd2f8eeb47a6f461ba4e58b545110389 100644
--- a/tests/library/Class/CatalogueTest.php
+++ b/tests/library/Class/CatalogueTest.php
@@ -480,6 +480,28 @@ class CatalogueTestGetNoticesByPreferences extends ModelTestCase {
 
 		$this->assertEquals(array('test'), $notices);
 	}
+
+
+
+	/** @test */
+	public function getNoticesWithCachePresentButUserAdminShouldCallThem() {
+		$account = new stdClass();
+		$account->username     = 'AutoTest' . time();
+		$account->password     = md5( 'password' );		
+		$account->ID_USER      = 2;
+		$account->ROLE_LEVEL   = ZendAfi_Acl_AdminControllerRoles::ADMIN_PORTAIL;
+		$account->confirmed    = true;
+		$account->enabled      = true;
+		Zend_Auth::getInstance()->getStorage()->write($account);
+		
+		Class_Users::getLoader()->newInstanceWithId($account->ID_USER)->setRoleLevel($account->ROLE_LEVEL);
+
+		$notices = $this->_catalogue->getNoticesByPreferences(array('id_catalogue' => 666,
+																																'aleatoire' => 1,
+																																'nb_analyse' => 25,
+																																'nb_notices' => 40));
+		$this->assertEquals(23, $notices[0]["id_notice"]);
+	}
 }
 
 ?>
\ No newline at end of file