diff --git a/core/modules/comment/src/CommentLazyBuilders.php b/core/modules/comment/src/CommentLazyBuilders.php
index d553411b9f34db02ef2ea932179c97b693557d64..a3d3df36848d032f27bf37381a6f9e9621a9b527 100644
--- a/core/modules/comment/src/CommentLazyBuilders.php
+++ b/core/modules/comment/src/CommentLazyBuilders.php
@@ -184,7 +184,8 @@ protected function buildLinks(CommentInterface $entity, EntityInterface $comment
         ];
       }
       $field_definition = $commented_entity->getFieldDefinition($entity->getFieldName());
-      if ($entity->access('create')
+      if ($entity->isPublished()
+        && $entity->access('create')
         && $field_definition->getSetting('default_mode') === CommentManagerInterface::COMMENT_MODE_THREADED) {
         $links['comment-reply'] = [
           'title' => t('Reply'),
diff --git a/core/modules/comment/tests/src/Functional/CommentThreadingTest.php b/core/modules/comment/tests/src/Functional/CommentThreadingTest.php
index 38620e75af52ebe2f0f623a4d4674f07b1a93550..75cff165aa8d7dac073c0976e32ed57443508c54 100644
--- a/core/modules/comment/tests/src/Functional/CommentThreadingTest.php
+++ b/core/modules/comment/tests/src/Functional/CommentThreadingTest.php
@@ -18,6 +18,31 @@ class CommentThreadingTest extends CommentTestBase {
    */
   protected $defaultTheme = 'stark';
 
+  /**
+   * Check the reply link on unpublished comments.
+   */
+  public function testCommentReplyLinkUnpublished(): void {
+    // Set comments to have a subject with preview disabled.
+    $this->setCommentPreview(DRUPAL_DISABLED);
+    $this->setCommentForm(FALSE);
+    $this->setCommentSettings('default_mode', CommentManagerInterface::         COMMENT_MODE_THREADED, 'Comment paging changed.');
+
+    // Create a node.
+    $this->drupalLogin($this->adminUser);
+    $this->node = $this->drupalCreateNode(['type' => 'article', 'promote' => 1, 'uid' => $this->webUser->id()]);
+
+    // Post comment #1.
+    $comment_text = $this->randomMachineName();
+    $comment1 = $this->postComment($this->node, $comment_text, '', TRUE);
+    $this->drupalGet($this->node->toUrl());
+    $this->assertSession()->pageTextContains('Reply');
+    $comment1->setUnpublished();
+    $comment1->save();
+
+    $this->drupalGet($this->node->toUrl());
+    $this->assertSession()->pageTextNotContains('Reply');
+  }
+
   /**
    * Tests the comment threading.
    */
@@ -33,7 +58,6 @@ public function testCommentThreading(): void {
     $this->node = $this->drupalCreateNode(['type' => 'article', 'promote' => 1, 'uid' => $this->webUser->id()]);
 
     // Post comment #1.
-    $this->drupalLogin($this->webUser);
     $subject_text = $this->randomMachineName();
     $comment_text = $this->randomMachineName();