diff --git a/VERSIONS_HOTLINE/91864 b/VERSIONS_HOTLINE/91864
new file mode 100644
index 0000000000000000000000000000000000000000..2606b68819e6055afcab697385163b45f830251e
--- /dev/null
+++ b/VERSIONS_HOTLINE/91864
@@ -0,0 +1 @@
+ - ticket #91864 : Newsletter : correction de la sélection d'article qui ajoutait automatiquement tous les articles lorsque la sélection était vide
\ No newline at end of file
diff --git a/library/Class/Newsletter.php b/library/Class/Newsletter.php
index e60f202738b553dcbdbf60f4d36593c5803ef51b..40ab4284afd3389b2097024dcdceb10b22f776ce 100644
--- a/library/Class/Newsletter.php
+++ b/library/Class/Newsletter.php
@@ -223,9 +223,11 @@ class Class_Newsletter extends Storm_Model_Abstract {
 
 
   public function getArticles() {
-    return Class_Article::getArticlesByPreferences(['id_items' => $this->getArticlesIds(),
-                                                    'id_categorie' => $this->getArticlesCategoriesIds(),
-                                                    'display_order' => 'Selection']);
+    return $this->hasArticlesIds() || $this->hasArticlesCategoriesIds()
+      ? Class_Article::getArticlesByPreferences(['id_items' => $this->getArticlesIds(),
+                                                 'id_categorie' => $this->getArticlesCategoriesIds(),
+                                                 'display_order' => 'Selection'])
+      : [];
   }
 
 
diff --git a/tests/application/modules/admin/controllers/NewsletterControllerTest.php b/tests/application/modules/admin/controllers/NewsletterControllerTest.php
index 70d5fc8d1ca104aca8347fe083ef97fb7ce01311..38f1401956f4458391bbfc934168644842ad6df3 100644
--- a/tests/application/modules/admin/controllers/NewsletterControllerTest.php
+++ b/tests/application/modules/admin/controllers/NewsletterControllerTest.php
@@ -838,10 +838,10 @@ class Admin_NewsletterControllerSendActionWithCommandFailureTest extends Admin_N
 
 
 
+abstract class Admin_NewsletterControllerPreviewActionTestCase
+  extends Admin_NewsletterControllerTestCase {
 
-class Admin_NewsletterControllerPreviewActionTest extends Admin_NewsletterControllerTestCase {
   public function setUp() {
-
     parent::setUp();
     $marcus = $this->fixture('Class_Users', ['id' => 345,
                                              'login' => 'mmiller',
@@ -912,22 +912,34 @@ class Admin_NewsletterControllerPreviewActionTest extends Admin_NewsletterContro
                     $septante_millions,
                     $gilet_jaune,
                     $l_arnaque]);
+  }
+}
+
+
+
+class Admin_NewsletterControllerPreviewActionWithArticlesSelectionTest
+  extends Admin_NewsletterControllerPreviewActionTestCase {
 
+  public function setUp() {
+    parent::setUp();
     $this->dispatch('/admin/newsletter/preview/id/3', true);
   }
 
 
-  public function testFrom() {
+  /** @test */
+  public function fromShouldBeLaurentAtAfiSaDotNet() {
     $this->assertQueryContentContains('p', 'laurent@afi-sa.net');
   }
 
 
-  public function testSubject() {
+  /** @test */
+  public function subjectShouldBeNouveautes() {
     $this->assertQueryContentContains('p', 'Nouveautés');
   }
 
 
-  public function testBodyText() {
+  /** @test */
+  public function bodyTextShouldBeNotreSelectionDuMois() {
     $this->assertQueryContentContains('p', 'Notre sélection du mois Hoho');
   }
 
@@ -1016,6 +1028,27 @@ class Admin_NewsletterControllerPreviewActionTest extends Admin_NewsletterContro
 }
 
 
+/** @see http://forge.afi-sa.fr/issues/91864 */
+class Admin_NewsletterControllerPreviewActionWithoutArticlesSelectionTest
+  extends Admin_NewsletterControllerPreviewActionTestCase {
+
+  public function setUp() {
+    parent::setUp();
+    Class_Newsletter::find(3)
+      ->updateAttributes(['articles_categories_ids' => '',
+                          'articles_ids' => ''])
+      ->assertSave();
+
+    $this->dispatch('/admin/newsletter/preview/id/3', true);
+  }
+
+
+  /** @test */
+  public function shouldNotCallArticlesGetByPreferences() {
+    $this->assertFalse(Class_Article::getLoader()->methodHasBeenCalled('getArticlesByPreferences'));
+  }
+}
+
 
 
 class Admin_NewsletterControllerSendTestActionTest extends Admin_NewsletterControllerTestCase {