diff --git a/core/modules/comment/comment.admin.inc b/core/modules/comment/comment.admin.inc
index 0418b1da30f663c0533bf6085cf785321c7b0000..b197e24d6aff250547b182ab39bb1dcddd3d4b84 100644
--- a/core/modules/comment/comment.admin.inc
+++ b/core/modules/comment/comment.admin.inc
@@ -39,7 +39,6 @@ function comment_admin($type = 'new') {
  * @see comment_admin()
  * @see comment_admin_overview_validate()
  * @see comment_admin_overview_submit()
- * @see theme_comment_admin_overview()
  */
 function comment_admin_overview($form, &$form_state, $arg) {
   // Build an 'Update options' form.
diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module
index 6f2795a4383d373e792359f3090294797fcf6938..519efd977ad06db0fe518da132350bf1c41f9af0 100644
--- a/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -198,16 +198,15 @@ function comment_field_extra_fields() {
 function comment_theme() {
   return array(
     'comment_block' => array(
+      'template' => 'comment-block',
       'variables' => array('number' => NULL),
     ),
-    'comment_preview' => array(
-      'variables' => array('comment' => NULL),
-    ),
     'comment' => array(
       'template' => 'comment',
       'render element' => 'elements',
     ),
     'comment_post_forbidden' => array(
+      'template' => 'comment-post-forbidden',
       'variables' => array('node' => NULL),
     ),
     'comment_wrapper' => array(
@@ -556,26 +555,6 @@ function comment_new_page_count($num_comments, $new_replies, Node $node) {
 }
 
 /**
- * Returns HTML for a list of recent comments.
- *
- * @ingroup themeable
- */
-function theme_comment_block($variables) {
-  $items = array();
-  $number = $variables['number'];
-  foreach (comment_get_recent($number) as $comment) {
-    $items[] = l($comment->subject, 'comment/' . $comment->cid, array('fragment' => 'comment-' . $comment->cid)) . '&nbsp;<span>' . t('@time ago', array('@time' => format_interval(REQUEST_TIME - $comment->changed))) . '</span>';
-  }
-
-  if ($items) {
-    return theme('item_list', array('items' => $items));
-  }
-  else {
-    return t('No comments available.');
-  }
-}
-
-/**
  * Implements hook_node_view().
  */
 function comment_node_view(Node $node, EntityDisplay $display, $view_mode) {
@@ -1619,9 +1598,29 @@ function comment_prepare_author(Comment $comment) {
 }
 
 /**
- * Preprocesses variables for comment.tpl.php.
+ * Preprocesses variables for comment-block.html.twig.
  *
- * @see comment.tpl.php
+ * @see comment-block.html.twig
+ */
+function template_preprocess_comment_block(&$variables) {
+  $items = array();
+  foreach (comment_get_recent($variables['number']) as $comment) {
+    $items[] = l($comment->subject, 'comment/' . $comment->cid, array('fragment' => 'comment-' . $comment->cid)) . '&nbsp;<span>' . t('@time ago', array('@time' => format_interval(REQUEST_TIME - $comment->changed))) . '</span>';
+  }
+
+  $variables['comments'] = '';
+  if (!empty($items)) {
+   $variables['comments'] = array(
+    '#theme' => 'item_list',
+    '#items' => $items,
+    );
+  }
+}
+
+/**
+ * Preprocesses variables for comment.html.twig.
+ *
+ * @see comment.html.twig
  */
 function template_preprocess_comment(&$variables) {
   $comment = $variables['elements']['#comment'];
@@ -1732,63 +1731,58 @@ function template_preprocess_comment(&$variables) {
 }
 
 /**
- * Returns HTML for a "you can't post comments" notice.
- *
- * @param $variables
- *   An associative array containing:
- *   - node: The comment node.
+ * Preprocesses variables for comment-post-forbidden.html.twig.
  *
- * @ingroup themeable
+ * @see comment-post-forbidden.html.twig
  */
-function theme_comment_post_forbidden($variables) {
-  $node = $variables['node'];
+function template_preprocess_comment_post_forbidden(&$variables) {
   global $user;
+  $node = $variables['node'];
+
+  // Whether the user viewing the site is logged out.
+  $variables['logged_out'] = (bool) (!$user->uid);
 
+  // Whether the user will be able to post comments once logged in.
   // Since this is expensive to compute, we cache it so that a page with many
   // comments only has to query the database once for all the links.
-  $authenticated_post_comments = &drupal_static(__FUNCTION__, NULL);
-
-  if (!$user->uid) {
-    if (!isset($authenticated_post_comments)) {
-      // We only output a link if we are certain that users will get permission
-      // to post comments by logging in.
-      $comment_roles = user_roles(TRUE, 'post comments');
-      $authenticated_post_comments = isset($comment_roles[DRUPAL_AUTHENTICATED_RID]);
-    }
+  $variables['can_post_comments'] = &drupal_static(__FUNCTION__, NULL);
+  if (!isset($variables['can_post_comments'])) {
+    $comment_roles = user_roles(TRUE, 'post comments');
+    $variables['can_post_comments'] = isset($comment_roles[DRUPAL_AUTHENTICATED_RID]);
+  }
 
-    if ($authenticated_post_comments) {
-      // We cannot use drupal_get_destination() because these links
-      // sometimes appear on /node and taxonomy listing pages.
-      if (variable_get('comment_form_location_' . $node->type, COMMENT_FORM_BELOW) == COMMENT_FORM_SEPARATE_PAGE) {
-        $destination = array('destination' => "comment/reply/$node->nid#comment-form");
-      }
-      else {
-        $destination = array('destination' => "node/$node->nid#comment-form");
-      }
+  // Whether a user is allowed to register for the site.
+  $variables['user_register'] = (config('user.settings')->get('register') != USER_REGISTER_ADMINISTRATORS_ONLY);
 
-      if (config('user.settings')->get('register') != USER_REGISTER_ADMINISTRATORS_ONLY) {
-        // Users can register themselves.
-        return t('<a href="@login">Log in</a> or <a href="@register">register</a> to post comments', array('@login' => url('user/login', array('query' => $destination)), '@register' => url('user/register', array('query' => $destination))));
-      }
-      else {
-        // Only admins can add new users, no public registration.
-        return t('<a href="@login">Log in</a> to post comments', array('@login' => url('user/login', array('query' => $destination))));
-      }
-    }
+  // Build login and register links.
+  // We cannot use drupal_get_destination() because these links
+  // sometimes appear on /node and taxonomy listing pages.
+  if (variable_get('comment_form_location_' . $node->type, COMMENT_FORM_BELOW) == COMMENT_FORM_SEPARATE_PAGE) {
+    $destination = array('destination' => "comment/reply/$node->nid#comment-form");
   }
+  else {
+    $destination = array('destination' => "node/$node->nid#comment-form");
+  }
+  // The URL where a user may log in.
+  $variables['user_login_url'] = url('user/login', array('query' => $destination));
+
+  // The URL where a user may register.
+  $variables['user_register_url'] = url('user/register', array('query' => $destination));
 }
 
 /**
- * Preprocesses variables for comment-wrapper.tpl.php.
+ * Preprocesses variables for comment-wrapper.html.twig.
  *
- * @see comment-wrapper.tpl.php
+ * @see comment-wrapper.html.twig
  */
 function template_preprocess_comment_wrapper(&$variables) {
   // Provide contextual information.
   $variables['node'] = $variables['content']['#node'];
   $variables['display_mode'] = variable_get('comment_default_mode_' . $variables['node']->type, COMMENT_MODE_THREADED);
-  // The comment form is optional and may not exist.
-  $variables['content'] += array('comment_form' => array());
+
+  // Split out some variables to make it easier on theme devs.
+  $variables['comments'] = isset($variables['content']['comments']) ? $variables['content']['comments'] : array();
+  $variables['form'] = isset($variables['content']['comment_form']) ? $variables['content']['comment_form'] : array();
 }
 
 /**
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php
index 91cab48acacd2b46f94dc5cd97d2da00cee70bc9..dfc262fdf3ca376fddd97744333b72292c85002b 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentLinksTest.php
@@ -249,7 +249,7 @@ function assertCommentLinks(array $info) {
 
         // Anonymous users should see a note to log in or register in case
         // authenticated users are allowed to post comments.
-        // @see theme_comment_post_forbidden()
+        // @see comment-post-forbidden.html.twig
         if (!$this->loggedInUser) {
           if (user_access('post comments', $this->web_user)) {
             // The note depends on whether users are actually able to register.
diff --git a/core/modules/comment/templates/comment-block.html.twig b/core/modules/comment/templates/comment-block.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..a5d03074a209d47c55a41bf0861526b82daff88b
--- /dev/null
+++ b/core/modules/comment/templates/comment-block.html.twig
@@ -0,0 +1,19 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a list of recent comments.
+ *
+ * Available variables:
+ * - comments: A list of recent comments.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_comment_block()
+ *
+ * @ingroup themeable
+ */
+#}
+{{ comments }}
+
+{% if not comments %}
+  {{ 'No comments available.'|t }}
+{% endif %}
diff --git a/core/modules/comment/templates/comment-post-forbidden.html.twig b/core/modules/comment/templates/comment-post-forbidden.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..9728fa7d5d99b5c803bdbe6d3f7d04a93d598162
--- /dev/null
+++ b/core/modules/comment/templates/comment-post-forbidden.html.twig
@@ -0,0 +1,31 @@
+{#
+/**
+ * @file
+ * Default theme implementation for a "you can't post comments" notice.
+ *
+ * Available variables:
+ * - logged_out: Whether the user viewing the site is logged out.
+ * - can_post_comments: Whether the user will be able to post comments once
+ *   logged in.
+ * - user_register: Whether a user is allowed to register for the site.
+ * - user_login_url: The URL where a user may log in.
+ * - user_register_url: The URL where a user may register.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_comment_post_forbidden()
+ *
+ * @ingroup themable
+ */
+#}
+
+{#
+  We only output a link if the current user is logged out and we are certain
+  that users will get permission to post comments by logging in.
+#}
+{% if logged_out and can_post_comments %}
+  {% if user_register %}
+    {{ '<a href="@login">Log in</a> or <a href="@register">register</a> to post comments' | t({'@login': user_login_url, '@register': user_register_url}) }}
+  {% else %}
+    {{ '<a href="@login">Log in</a> to post comments' | t({'@login': user_login_url}) }}
+  {% endif %}
+{% endif %}
diff --git a/core/modules/comment/templates/comment-wrapper.html.twig b/core/modules/comment/templates/comment-wrapper.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..7fc3e4d892422d0dcab8be27fa736c70e12b94d0
--- /dev/null
+++ b/core/modules/comment/templates/comment-wrapper.html.twig
@@ -0,0 +1,47 @@
+{#
+/**
+ * @file
+ * Provides an html container for comments.
+ *
+ * Available variables:
+ * - content: The array of content-related elements for the node. Use
+ *   render_var($content) to print them all, or print a subset such as
+ *   render_var($content['comment_form']).
+ * - attributes: Remaining html attributes for the containing element.
+ *   It includes the 'class' information, which includes:
+ *   - comment-wrapper: The current template type, i.e., "theming hook".
+ *   - title_prefix: An array containing additional output populated by
+ *     modules, intended to be displayed in front of the main title tag that
+ *     appears in the template.
+ *   - title_suffix: An array containing additional output populated by
+ *     modules, intended to be displayed after the main title tag that
+ *     appears in the template.
+ *
+ * The following variables are provided for contextual information.
+ * - node: The node entity to which the comments belong.
+ *   The constants below the variables show the possible values and should be
+ *   used for comparison.
+ *   - display_mode
+ *     - COMMENT_MODE_FLAT
+ *     - COMMENT_MODE_THREADED
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_comment_wrapper()
+ */
+#}
+<section id="comments" class="{{ attributes.class }}"{{ attributes }}>
+  {# @todo forum module should extend comment template to keep the code in here clean #}
+  {% if comments and node.type != 'forum' %}
+    {{ title_prefix }}
+    <h2 class="title">{{ 'Comments' | t }}</h2>
+    {{ title_suffix }}
+  {% endif %}
+
+  {{ comments }}
+
+  {% if form %}
+    <h2 class="title comment-form">{{ 'Add new comment' | t }}</h2>
+    {{ form }}
+  {% endif %}
+
+</section>
diff --git a/core/modules/comment/templates/comment-wrapper.tpl.php b/core/modules/comment/templates/comment-wrapper.tpl.php
deleted file mode 100644
index ac1c27f94f99297c67afd249e275598fdc49af15..0000000000000000000000000000000000000000
--- a/core/modules/comment/templates/comment-wrapper.tpl.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/**
- * @file
- * Provides an HTML container for comments.
- *
- * Available variables:
- * - $content: The array of content-related elements for the node. Use
- *   render($content) to print them all, or
- *   print a subset such as render($content['comment_form']).
- * - $attributes: An instance of Attributes class that can be manipulated as an
- *    array and printed as a string.
- *    It includes the 'class' information, which includes:
- *   - comment-wrapper: The current template type, i.e., "theming hook".
- * - $title_prefix (array): An array containing additional output populated by
- *   modules, intended to be displayed in front of the main title tag that
- *   appears in the template.
- * - $title_suffix (array): An array containing additional output populated by
- *   modules, intended to be displayed after the main title tag that appears in
- *   the template.
- *
- * The following variables are provided for contextual information.
- * - $node: Node entity the comments are attached to.
- * The constants below the variables show the possible values and should be
- * used for comparison.
- * - $display_mode
- *   - COMMENT_MODE_FLAT
- *   - COMMENT_MODE_THREADED
- *
- * @see template_preprocess_comment_wrapper()
- *
- * @ingroup themeable
- */
-?>
-<section id="comments" <?php print $attributes; ?>>
-  <?php if ($content['comments'] && $node->type != 'forum'): ?>
-    <?php print render($title_prefix); ?>
-    <h2 class="title"><?php print t('Comments'); ?></h2>
-    <?php print render($title_suffix); ?>
-  <?php endif; ?>
-
-  <?php print render($content['comments']); ?>
-
-  <?php if ($content['comment_form']): ?>
-    <h2 class="title comment-form"><?php print t('Add new comment'); ?></h2>
-    <?php print render($content['comment_form']); ?>
-  <?php endif; ?>
-</section>
diff --git a/core/modules/comment/templates/comment.html.twig b/core/modules/comment/templates/comment.html.twig
new file mode 100644
index 0000000000000000000000000000000000000000..15b75119bbcbf76a0237ff22bfa0540f9550bd36
--- /dev/null
+++ b/core/modules/comment/templates/comment.html.twig
@@ -0,0 +1,95 @@
+{#
+/**
+ * @file
+ * Default theme implementation for comments.
+ *
+ * Available variables:
+ * - author: Comment author. Can be a link or plain text.
+ * - content: An array of comment items. Use render_var(content) to print them
+ *   all, or print a subset such as render_var(content.field_example). Use
+ *   hide(content.field_example) to temporarily suppress the printing of a
+ *   given element.
+ * - created: Formatted date and time for when the comment was created.
+ *   Preprocess functions can reformat it by calling format_date() with the
+ *   desired parameters on the comment->created variable.
+ * - changed: Formatted date and time for when the comment was last changed.
+ *   Preprocess functions can reformat it by calling format_date() with the
+ *   desired parameters on the comment->changed variable.
+ * - new: New comment marker.
+ * - permalink: Comment permalink.
+ * - submitted: Submission information created from author and created
+ *   during template_preprocess_comment().
+ * - picture: Authors picture.
+ * - signature: Authors signature.
+ * - status: Comment status. Possible values are:
+ *   unpublished, published, or preview.
+ * - title: Linked title.
+ * - classes: String of classes that can be used to style contextually through
+ *   CSS. It can be manipulated through the variable classes_array from
+ *   preprocess functions. The default values can be one or more of the
+ *   following:
+ *   - comment: The current template type; e.g., 'theming hook'.
+ *   - by-anonymous: Comment by an unregistered user.
+ *   - by-node-author: Comment by the author of the parent node.
+ *   - preview: When previewing a new or edited comment.
+ *   The following applies only to viewers who are registered users:
+ *   - unpublished: An unpublished comment visible only to administrators.
+ *   - by-viewer: Comment by the user currently viewing the page.
+ *   - new: New comment since the last visit.
+ * - title_prefix (array): An array containing additional output populated by
+ *   modules, intended to be displayed in front of the main title tag that
+ *   appears in the template.
+ * - title_suffix (array): An array containing additional output populated by
+ *   modules, intended to be displayed after the main title tag that appears in
+ *   the template.
+ *
+ * These two variables are provided for context:
+ * - comment: Full comment object.
+ * - node: Node entity the comments are attached to.
+ *
+ * @see template_preprocess()
+ * @see template_preprocess_comment()
+ *
+ * @ingroup themeable
+ */
+#}
+<article class="{{ attributes.class }} clearfix"{{ attributes }}>
+  {{ title_prefix }}
+
+  {% if new %}
+    <mark class="new">{{ new }}</mark>
+  {% endif %}
+
+  <h3{{ title_attributes }}>{{ title }}</h3>
+
+  {{ title_suffix }}
+
+  <footer>
+    {{ user_picture }}
+    <p class="submitted">{{ submitted }}</p>
+
+    {#
+      Indicate the semantic relationship between parent and child comments
+      for accessibility. The list is difficult to navigate in a screen
+      reader without this information.
+    #}
+    {% if parent %}
+      <p class="parent element-invisible">{{ parent }}</p>
+    {% endif %}
+
+    {{ permalink }}
+  </footer>
+
+  <div class="content {{ content_attributes.class }}"{{ content_attributes }}>
+    {# We hide the links now so that we can render them later. #}
+    {% hide(content.links) %}
+    {{ content }}
+
+    {% if signature %}
+    <div class="user-signature">
+      {{ signature }}
+    </div>
+    {% endif %}
+  </div>
+  {{ content.links }}
+</article>
diff --git a/core/modules/comment/templates/comment.tpl.php b/core/modules/comment/templates/comment.tpl.php
deleted file mode 100644
index 5a8a37e50284c1b64345b2d736edbaa35ec2dc3a..0000000000000000000000000000000000000000
--- a/core/modules/comment/templates/comment.tpl.php
+++ /dev/null
@@ -1,110 +0,0 @@
-<?php
-
-/**
- * @file
- * Default theme implementation for comments.
- *
- * Available variables:
- * - $author: Comment author. Can be link or plain text.
- * - $content: An array of comment items. Use render($content) to print them
- *   all, or print a subset such as render($content['field_example']). Use
- *   hide($content['field_example']) to temporarily suppress the printing of a
- *   given element.
- * - $created: Formatted date and time for when the comment was created.
- *   Preprocess functions can reformat it by calling format_date() with the
- *   desired parameters on the $comment->created variable.
- * - $changed: Formatted date and time for when the comment was last changed.
- *   Preprocess functions can reformat it by calling format_date() with the
- *   desired parameters on the $comment->changed variable.
- * - $new: New comment marker.
- * - $permalink: Comment permalink.
- * - $submitted: Submission information created from $author and $created during
- *   template_preprocess_comment().
- * - $user_picture: The comment author's picture. Use render($user_picture) to
- *   print it.
- * - $signature: Authors signature.
- * - $status: Comment status. Possible values are:
- *   unpublished, published, or preview.
- * - $title: Linked title.
- * - $attributes: An instance of Attributes class that can be manipulated as an
- *    array and printed as a string.
- *    It includes the 'class' information, which includes:
- *   - comment: The current template type; e.g., 'theming hook'.
- *   - by-anonymous: Comment by an unregistered user.
- *   - by-node-author: Comment by the author of the parent node.
- *   - preview: When previewing a new or edited comment.
- *   The following applies only to viewers who are registered users:
- *   - unpublished: An unpublished comment visible only to administrators.
- *   - by-viewer: Comment by the user currently viewing the page.
- *   - new: New comment since the last visit.
- * - $title_prefix (array): An array containing additional output populated by
- *   modules, intended to be displayed in front of the main title tag that
- *   appears in the template.
- * - $title_suffix (array): An array containing additional output populated by
- *   modules, intended to be displayed after the main title tag that appears in
- *   the template.
- *
- * These variables are provided to give context about the parent comment (if
- * any):
- * - $comment_parent: Full parent comment object (if any).
- * - $parent_author: Equivalent to $author for the parent comment.
- * - $parent_created: Equivalent to $created for the parent comment.
- * - $parent_changed: Equivalent to $changed for the parent comment.
- * - $parent_title: Equivalent to $title for the parent comment.
- * - $parent_permalink: Equivalent to $permalink for the parent comment.
- * - $parent: A text string of parent comment submission information created
- *   from $parent_author and $parent_created during
- *   template_preprocess_comment(). This information is presented to help
- *   screen readers follow lengthy discussion threads. You can hide this from
- *   sighted users using the class element-invisible.
- *
- * These two variables are provided for context:
- * - $comment: Full comment object.
- * - $node: Node entity the comments are attached to.
- *
- * @see template_preprocess()
- * @see template_preprocess_comment()
- * @see template_process()
- * @see theme_comment()
- *
- * @ingroup themeable
- */
-?>
-<article class="<?php print $attributes['class']; ?> clearfix"<?php print $attributes; ?>>
-
-  <?php print render($title_prefix); ?>
-  <?php if ($new): ?>
-    <mark class="new"><?php print $new; ?></mark>
-  <?php endif; ?>
-  <h3<?php print $title_attributes; ?>><?php print $title; ?></h3>
-  <?php print render($title_suffix); ?>
-
-  <footer>
-    <?php print render($user_picture); ?>
-    <p class="submitted"><?php print $submitted; ?></p>
-    <?php
-      // Indicate the semantic relationship between parent and child comments
-      // for accessibility. The list is difficult to navigate in a screen
-      // reader without this information.
-      if ($parent):
-    ?>
-      <p class="parent element-invisible"><?php print $parent; ?></p>
-    <?php endif; ?>
-    <?php print $permalink; ?>
-  </footer>
-
-  <div class="content"<?php print $content_attributes; ?>>
-    <?php
-      // We hide the links now so that we can render them later.
-      hide($content['links']);
-      print render($content);
-    ?>
-    <?php if ($signature): ?>
-    <div class="user-signature">
-      <?php print $signature; ?>
-    </div>
-    <?php endif; ?>
-  </div>
-
-  <?php print render($content['links']) ?>
-</article>
diff --git a/core/themes/bartik/templates/comment-wrapper.tpl.php b/core/themes/bartik/templates/comment-wrapper.tpl.php
deleted file mode 100644
index fd8dfa71d6b56b99aa3dd8efe77fa9e110ed1adc..0000000000000000000000000000000000000000
--- a/core/themes/bartik/templates/comment-wrapper.tpl.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-/**
- * @file
- * Bartik's theme implementation to provide an HTML container for comments.
- *
- * Available variables:
- * - $content: The array of content-related elements for the node. Use
- *   render($content) to print them all, or
- *   print a subset such as render($content['comment_form']).
- * - $attributes: An instance of Attributes class that can be manipulated as an
- *    array and printed as a string.
- *    It includes the 'class' information, which includes:
- *   - comment-wrapper: The current template type, i.e., "theming hook".
- * - $title_prefix (array): An array containing additional output populated by
- *   modules, intended to be displayed in front of the main title tag that
- *   appears in the template.
- * - $title_suffix (array): An array containing additional output populated by
- *   modules, intended to be displayed after the main title tag that appears in
- *   the template.
- *
- * The following variables are provided for contextual information.
- * - $node: Node entity the comments are attached to.
- * The constants below the variables show the possible values and should be
- * used for comparison.
- * - $display_mode
- *   - COMMENT_MODE_FLAT
- *   - COMMENT_MODE_THREADED
- *
- * @see template_preprocess_comment_wrapper()
- *
- * @ingroup themeable
- */
-?>
-<section id="comments" <?php print $attributes; ?>>
-  <?php if ($content['comments'] && $node->type != 'forum'): ?>
-    <?php print render($title_prefix); ?>
-    <h2 class="title"><?php print t('Comments'); ?></h2>
-    <?php print render($title_suffix); ?>
-  <?php endif; ?>
-
-  <?php print render($content['comments']); ?>
-
-  <?php if ($content['comment_form']): ?>
-    <h2 class="title comment-form"><?php print t('Add new comment'); ?></h2>
-    <?php print render($content['comment_form']); ?>
-  <?php endif; ?>
-</section>
diff --git a/core/themes/bartik/templates/comment.tpl.php b/core/themes/bartik/templates/comment.tpl.php
deleted file mode 100644
index a8c49243344156c643a168585bad19220b27a5f6..0000000000000000000000000000000000000000
--- a/core/themes/bartik/templates/comment.tpl.php
+++ /dev/null
@@ -1,135 +0,0 @@
-<?php
-
-/**
- * @file
- * Bartik's theme implementation for comments.
- *
- * Available variables:
- * - $author: Comment author. Can be a link or plain text.
- * - $content: An array of comment items. Use render($content) to print them
- *   all, or print a subset such as render($content['field_example']). Use
- *   hide($content['field_example']) to temporarily suppress the printing of a
- *   given element.
- * - $created: Formatted date and time for when the comment was created.
- *   Preprocess functions can reformat it by calling format_date() with the
- *   desired parameters on the $comment->created variable.
- * - $changed: Formatted date and time for when the comment was last changed.
- *   Preprocess functions can reformat it by calling format_date() with the
- *   desired parameters on the $comment->changed variable.
- * - $new: New comment marker.
- * - $permalink: Comment permalink.
- * - $submitted: Submission information created from $author and $created
- *   during template_preprocess_comment().
- * - $signature: Authors signature.
- * - $status: Comment status. Possible values are:
- *   unpublished, published, or preview.
- * - $title: Linked title.
- * - $attributes: An instance of Attributes class that can be manipulated as an
- *    array and printed as a string.
- *    It includes the 'class' information, which includes:
- *   - comment: The current template type; e.g., 'theming hook'.
- *   - by-anonymous: Comment by an unregistered user.
- *   - by-node-author: Comment by the author of the parent node.
- *   - preview: When previewing a new or edited comment.
- *   The following applies only to viewers who are registered users:
- *   - unpublished: An unpublished comment visible only to administrators.
- *   - by-viewer: Comment by the user currently viewing the page.
- *   - new: New comment since the last visit.
- * - $title_prefix (array): An array containing additional output populated by
- *   modules, intended to be displayed in front of the main title tag that
- *   appears in the template.
- * - $title_suffix (array): An array containing additional output populated by
- *   modules, intended to be displayed after the main title tag that appears in
- *   the template.
- *
- * These variables are provided to give context about the parent comment (if
- * any):
- * - $comment_parent: Full parent comment object (if any).
- * - $parent_author: Equivalent to $author for the parent comment.
- * - $parent_created: Equivalent to $created for the parent comment.
- * - $parent_changed: Equivalent to $changed for the parent comment.
- * - $parent_title: Equivalent to $title for the parent comment.
- * - $parent_permalink: Equivalent to $permalink for the parent comment.
- * - $parent: A text string of parent comment submission information created
- *   from $parent_author and $parent_created during
- *   template_preprocess_comment(). This information is presented to help
- *   screen readers follow lengthy discussion threads. You can hide this from
- *   sighted users using the class element-invisible.
- *
- * These two variables are provided for context:
- * - $comment: Full comment object.
- * - $node: Node entity the comments are attached to.
- *
- * @see template_preprocess()
- * @see template_preprocess_comment()
- * @see template_process()
- * @see theme_comment()
- *
- * @ingroup themeable
- */
-?>
-<article class="<?php print $attributes['class']; ?> clearfix"<?php print $attributes; ?> role="article">
-
-  <header class="comment-header">
-
-    <div class="attribution">
-      <?php print render($user_picture); ?>
-
-      <div class="submitted">
-        <p class="commenter-name">
-          <?php print $author; ?>
-        </p>
-        <p class="comment-time">
-          <?php print $created; ?>
-        </p>
-        <p class="comment-permalink">
-          <?php print $permalink; ?>
-        </p>
-        <?php
-          // Indicate the semantic relationship between parent and child comments
-          // for accessibility. The list is difficult to navigate in a screen
-          // reader without this information.
-          if ($parent):
-        ?>
-        <p class="comment-parent element-invisible">
-          <?php print $parent; ?>
-        </p>
-        <?php endif; ?>
-      </div>
-    </div> <!-- /.attribution -->
-
-    <div class="comment-text">
-      <div class="comment-arrow"></div>
-
-      <?php if ($new): ?>
-        <span class="new"><?php print $new; ?></span>
-      <?php endif; ?>
-
-      <?php print render($title_prefix); ?>
-      <h3<?php print $title_attributes; ?>><?php print $title; ?></h3>
-      <?php print render($title_suffix); ?>
-    </div> <!-- /.comment-text -->
-
-  </header> <!-- /.comment-header -->
-
-  <div class="content"<?php print $content_attributes; ?>>
-    <?php
-      // We hide the comments and links now so that we can render them later.
-      hide($content['links']);
-      print render($content);
-    ?>
-  </div> <!-- /.content -->
-
-  <footer class="comment-footer">
-    <?php if ($signature): ?>
-      <div class="user-signature clearfix">
-        <?php print $signature; ?>
-      </div>
-    <?php endif; ?>
-
-    <nav>
-      <?php print render($content['links']); ?>
-    </nav>
-  </footer> <!-- /.comment-footer -->
-
-</article>
