diff --git a/VERSIONS_HOTLINE/98544 b/VERSIONS_HOTLINE/98544
new file mode 100644
index 0000000000000000000000000000000000000000..d91347d269998176d6eb8192c802bdb6c378ad99
--- /dev/null
+++ b/VERSIONS_HOTLINE/98544
@@ -0,0 +1 @@
+ - ticket #98544 : OPAC CMS: correction de la publication des articles en fonction de leur statut.
\ No newline at end of file
diff --git a/library/Class/Article.php b/library/Class/Article.php
index e1f57fca9f78bd9b5d8e64c75171f74406d5ee5b..22f4bbe241698248b9e341008e22781c612e605b 100644
--- a/library/Class/Article.php
+++ b/library/Class/Article.php
@@ -1481,12 +1481,8 @@ class Class_Article extends Storm_Model_Abstract {
 
 
   public function isFrontVisible() {
-    if(Class_Users::isCurrentUserCanAccesBackend())
-      return true;
-
-    if($this->isArchived())
-      return false;
-
-    return !$this->isStatusDraft();
+    return Class_Users::isCurrentUserCanAccesBackend()
+      ? true
+      : $this->isVisible();
   }
 }
\ No newline at end of file
diff --git a/tests/application/modules/admin/controllers/CmsControllerTest.php b/tests/application/modules/admin/controllers/CmsControllerTest.php
index 164790a64f9c38cc9b0e5c10e458ab625b04de7a..edcdb7457ef0b502e2b976a9dfb4339a68f592e8 100644
--- a/tests/application/modules/admin/controllers/CmsControllerTest.php
+++ b/tests/application/modules/admin/controllers/CmsControllerTest.php
@@ -1737,8 +1737,8 @@ class CmsControllerNewsAddActionPostWithWorkflowTest
   /** @test */
   public function sentMailToAuthorWhenNewsIsValidatedShouldContainsDefaultSubject() {
     $this->postArticleValidated();
-    $this->assertEquals('=?utf8?Q?[Bokeh] Validation de l\'article Katsuhiro Otomo ? =?utf8?Q?en dédicace !?',
-                        quoted_printable_decode($this->mock_transport->getSentMails()[0]->getSubject()));
+    $this->assertEquals('[Bokeh] Validation de l\'article Katsuhiro Otomo en dédicace !',
+                        iconv_mime_decode($this->mock_transport->getSentMails()[0]->getSubject()));
   }
 
 
@@ -1835,8 +1835,8 @@ class CmsControllerNewsAddActionPostWithWorkflowTest
   /** @test */
   public function sentMailToAdminWhenValidationPendingShouldContainsDefaultTitle() {
     $this->postArticleAValider();
-    $this->assertContains('=?utf8?Q?[Bokeh] Validation d\'article en attente: ? =?utf8?Q?Katsuhiro Otomo en dédicace !?',
-                          quoted_printable_decode($this->mock_transport->getSentMails()[0]->getSubject()));
+    $this->assertContains('[Bokeh] Validation d\'article en attente: Katsuhiro Otomo en dédicace !',
+                          iconv_mime_decode($this->mock_transport->getSentMails()[0]->getSubject()));
   }
 
 
@@ -2004,8 +2004,8 @@ class CmsControllerWorkflowArticleRefusedTest extends CmsControllerWorkflowTestC
   /** @test */
   public function sentMailToUserWhenRefusedShouldContainsDefaultTitle() {
     $this->postArticleRefuser();
-    $this->assertContains('=?utf8?Q?[Bokeh] Refus de l\'article Katsuhiro Otomo en ? =?utf8?Q?dédicace !?',
-                          quoted_printable_decode($this->mock_transport->getSentMails()[0]->getSubject()));
+    $this->assertContains('[Bokeh] Refus de l\'article Katsuhiro Otomo en dédicace !',
+                          iconv_mime_decode($this->mock_transport->getSentMails()[0]->getSubject()));
   }
 
 
diff --git a/tests/application/modules/opac/controllers/CmsControllerTest.php b/tests/application/modules/opac/controllers/CmsControllerTest.php
index 1340209121c0fbeb06048f02e3263d068d7e42fe..fce3a71035cc8fca3c15263c42cc8970222a085e 100644
--- a/tests/application/modules/opac/controllers/CmsControllerTest.php
+++ b/tests/application/modules/opac/controllers/CmsControllerTest.php
@@ -1387,6 +1387,56 @@ class CmsControllerArticleViewDraftTest extends CmsControllerWithFeteDeLaFriteTe
 
 
 
+class CmsControllerArticleViewRefusedTest extends CmsControllerWithFeteDeLaFriteTestCase {
+
+  public function setUp() {
+    parent::setUp();
+    ZendAfi_Auth::getInstance()->clearIdentity();
+    Class_AdminVar::newInstanceWithId('WORKFLOW', ['valeur' => '1']);
+    Class_Article::find(224)->updateAttributes(['status'=>Class_Article::STATUS_REFUSED])->assertSave();
+    $this->dispatch('/cms/articleview/id/224', false);
+  }
+
+
+  /** @test */
+  public function responseShouldBeA404NotFound() {
+    $this->assertResponseCode(404);
+  }
+
+
+  /** @test */
+  public function pageShouldContainsH1WithNotFound() {
+    $this->assertXPathContentContains('//h1', 'Désolé, cette page n\'existe pas');
+  }
+}
+
+
+
+class CmsControllerArticleViewValidationPendingTest extends CmsControllerWithFeteDeLaFriteTestCase {
+
+  public function setUp() {
+    parent::setUp();
+    ZendAfi_Auth::getInstance()->clearIdentity();
+    Class_AdminVar::newInstanceWithId('WORKFLOW', ['valeur' => '1']);
+    Class_Article::find(224)->beValidationPending()->assertSave();
+    $this->dispatch('/cms/articleview/id/224', false);
+  }
+
+
+  /** @test */
+  public function responseShouldBeA404NotFound() {
+    $this->assertResponseCode(404);
+  }
+
+
+  /** @test */
+  public function pageShouldContainsH1WithNotFound() {
+    $this->assertXPathContentContains('//h1', 'Désolé, cette page n\'existe pas');
+  }
+}
+
+
+
 class CmsControllerUnknownArticleTest extends CmsControllerWithFeteDeLaFriteTestCase {
   public function setUp() {
     parent::setUp();