diff --git tests/phpunit/tests/comment/comment-template-backpat.php tests/phpunit/tests/comment/comment-template-backpat.php
new file mode 100644
index 0000000..2424a32
--- /dev/null
+++ tests/phpunit/tests/comment/comment-template-backpat.php
@@ -0,0 +1,291 @@
+<?php
+
+class Comment_Template_Backpat_Tests extends WP_UnitTestCase {
+	protected $comments_array = array();
+	protected $comment_ids = array();
+
+	public function test_comments_template_logged_in() {
+		$u = $this->factory->user->create();
+
+		$current_user = get_current_user_id();
+		wp_set_current_user( $u );
+
+		$p1 = $this->factory->post->create();
+		$p2 = $this->factory->post->create();
+
+		// On this post, by another author, approved
+		$c1 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'comment_approved' => 1,
+		) );
+
+		// On this post, by another author, unapproved
+		$c2 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'comment_approved' => 0,
+		) );
+
+		// On this post, by current author, unapproved
+		$c3 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'user_id' => $u,
+			'comment_approved' => 0,
+		) );
+
+		// On this post, by current author, approved
+		$c4 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'user_id' => $u,
+			'comment_approved' => 1,
+		) );
+
+		// On another post, by current author, approved
+		$c5 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p2,
+			'user_id' => $u,
+			'comment_approved' => 1,
+		) );
+
+		$this->go_to( get_permalink( $p1 ) );
+
+		ob_start();
+		add_filter( 'comments_array', array( $this, 'catch_comments_array' ) );
+		comments_template();
+		ob_end_clean();
+
+		$this->assertEquals( array( $c1, $c3, $c4 ), wp_list_pluck( $this->comments_array, 'comment_ID' ) );
+
+		// Clean up
+		remove_filter( 'comments_array', array( $this, 'catch_comments_array' ) );
+		wp_set_current_user( $current_user );
+		$this->comments_array = array();
+	}
+
+	public function test_comments_template_not_logged_in() {
+		$u = $this->factory->user->create();
+
+		$current_user = get_current_user_id();
+		wp_set_current_user( 0 );
+
+		$p1 = $this->factory->post->create();
+		$p2 = $this->factory->post->create();
+
+		$commenter = $this->filter_wp_get_current_commenter();
+
+		// On this post, by this author, approved
+		$c1 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'comment_approved' => 1,
+			'comment_author' => $commenter['comment_author'],
+			'comment_author_email' => $commenter['comment_author_email'],
+			'comment_author_url' => $commenter['comment_author_url'],
+		) );
+
+		// On this post, by this author, unapproved
+		$c2 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'comment_approved' => 0,
+			'comment_author' => $commenter['comment_author'],
+			'comment_author_email' => $commenter['comment_author_email'],
+			'comment_author_url' => $commenter['comment_author_url'],
+		) );
+
+		// On this post, by different author, unapproved
+		$c3 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'user_id' => $u,
+			'comment_approved' => 0,
+		) );
+
+		// On this post, by different author, approved
+		$c4 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'user_id' => $u,
+			'comment_approved' => 1,
+		) );
+
+		// On another post, by this author, approved
+		$c5 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p2,
+			'comment_author' => $commenter['comment_author'],
+			'comment_author_email' => $commenter['comment_author_email'],
+			'comment_author_url' => $commenter['comment_author_url'],
+			'comment_approved' => 1,
+		) );
+
+		$this->go_to( get_permalink( $p1 ) );
+
+		ob_start();
+		add_filter( 'wp_get_current_commenter', array( $this, 'filter_wp_get_current_commenter' ) );
+		add_filter( 'comments_array', array( $this, 'catch_comments_array' ) );
+		comments_template();
+		ob_end_clean();
+
+		$this->assertEquals( array( $c1, $c2, $c4 ), wp_list_pluck( $this->comments_array, 'comment_ID' ) );
+
+		// clean up
+		remove_filter( 'wp_get_current_commenter', array( $this, 'filter_wp_get_current_commenter' ) );
+		remove_filter( 'comments_array', array( $this, 'catch_comments_array' ) );
+		wp_set_current_user( $current_user );
+		$this->comments_array = array();
+	}
+
+	public function test_comments_template_no_author_data() {
+		$u = $this->factory->user->create();
+
+		$current_user = get_current_user_id();
+		wp_set_current_user( 0 );
+
+		$p1 = $this->factory->post->create();
+		$p2 = $this->factory->post->create();
+
+		$commenter = $this->filter_wp_get_current_commenter();
+
+		// On this post, by this author, approved
+		$c1 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'comment_approved' => 1,
+			'comment_author' => $commenter['comment_author'],
+			'comment_author_email' => $commenter['comment_author_email'],
+			'comment_author_url' => $commenter['comment_author_url'],
+		) );
+
+		// On this post, by this author, unapproved
+		$c2 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'comment_approved' => 0,
+			'comment_author' => $commenter['comment_author'],
+			'comment_author_email' => $commenter['comment_author_email'],
+			'comment_author_url' => $commenter['comment_author_url'],
+		) );
+
+		// On this post, by different author, unapproved
+		$c3 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'user_id' => $u,
+			'comment_approved' => 0,
+		) );
+
+		// On this post, by different author, approved
+		$c4 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'user_id' => $u,
+			'comment_approved' => 1,
+		) );
+
+		// On another post, by this author, approved
+		$c5 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p2,
+			'comment_author' => $commenter['comment_author'],
+			'comment_author_email' => $commenter['comment_author_email'],
+			'comment_author_url' => $commenter['comment_author_url'],
+			'comment_approved' => 1,
+		) );
+
+		$this->go_to( get_permalink( $p1 ) );
+
+		ob_start();
+		add_filter( 'wp_get_current_commenter', array( $this, 'filter_wp_get_current_commenter_null' ) );
+		add_filter( 'comments_array', array( $this, 'catch_comments_array' ) );
+		comments_template();
+		ob_end_clean();
+
+		$this->assertEquals( array( $c1, $c4 ), wp_list_pluck( $this->comments_array, 'comment_ID' ) );
+
+		// clean up
+		remove_filter( 'wp_get_current_commenter', array( $this, 'filter_wp_get_current_commenter_null' ) );
+		remove_filter( 'comments_array', array( $this, 'catch_comments_array' ) );
+		wp_set_current_user( $current_user );
+		$this->comments_array = array();
+	}
+
+	public function test_comments_template_comments_array_filter_backpat() {
+		$u = $this->factory->user->create();
+
+		$current_user = get_current_user_id();
+		wp_set_current_user( $u );
+
+		$p1 = $this->factory->post->create();
+		$p2 = $this->factory->post->create();
+
+		// On this post, by another author, approved
+		$c1 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'comment_approved' => 1,
+		) );
+
+		// On this post, by another author, unapproved
+		$c2 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'comment_approved' => 0,
+		) );
+
+		// On this post, by current author, unapproved
+		$c3 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'user_id' => $u,
+			'comment_approved' => 0,
+		) );
+
+		// On this post, by current author, approved
+		$c4 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p1,
+			'user_id' => $u,
+			'comment_approved' => 1,
+		) );
+
+		// On another post, by current author, approved
+		$c5 = $this->factory->comment->create( array(
+			'comment_post_ID' => $p2,
+			'user_id' => $u,
+			'comment_approved' => 1,
+		) );
+
+		$this->comment_ids = array( $c1, $c2, $c3, $c4, $c5 );
+
+		$this->go_to( get_permalink( $p1 ) );
+
+		ob_start();
+
+		// This is the filter we're testing
+		add_filter( 'comments_array', array( $this, 'filter_comments_array' ), 5 );
+
+		add_filter( 'comments_array', array( $this, 'catch_comments_array' ) );
+		comments_template();
+		ob_end_clean();
+
+		$this->assertEquals( array( $c1 ), wp_list_pluck( $this->comments_array, 'comment_ID' ) );
+
+		// Clean up
+		remove_filter( 'comments_array', array( $this, 'filter_comments_array' ), 5 );
+		remove_filter( 'comments_array', array( $this, 'catch_comments_array' ) );
+		wp_set_current_user( $current_user );
+		$this->comments_array = array();
+	}
+
+	public function catch_comments_array( $comments ) {
+		$this->comments_array = $comments;
+		return $comments;
+	}
+
+	public function filter_comments_array( $comments ) {
+		$cid = $this->comment_ids[0];
+		return array( get_comment( $cid ) );
+	}
+
+	public function filter_wp_get_current_commenter( $commenter = false ) {
+		return array(
+			'comment_author' => 'Foo',
+			'comment_author_email' => 'foo@example.com',
+			'comment_author_url' => 'http://foo.example.com',
+		);
+	}
+
+	public function filter_wp_get_current_commenter_null( $commenter = false ) {
+		return array(
+			'comment_author' => '',
+			'comment_author_email' => '',
+			'comment_author_url' => '',
+		);
+	}
+}
