Index: tests/phpunit/testcases/messages/class.bp-messages-thread.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- tests/phpunit/testcases/messages/class.bp-messages-thread.php	(revision 10030)
+++ tests/phpunit/testcases/messages/class.bp-messages-thread.php	(revision )
@@ -402,4 +402,30 @@
 	public function test_is_valid_invalid_thread() {
 		$this->assertEquals( null, BP_Messages_Thread::is_valid( 999 ) );
 	}
+
+	/**
+	 * @group last_message
+	 */
+	public function test_last_message_populated() {
+		$u1 = $this->factory->user->create();
+		$u2 = $this->factory->user->create();
+
+		$date = bp_core_current_time();
+
+		$t1 = $this->factory->message->create( array(
+			'sender_id' => $u1,
+			'recipients' => array( $u2 ),
+			'subject' => 'Foo',
+			'date_sent' => $date,
+			'content' => 'Bar and baz.',
+		) );
+
+		$thread = new BP_Messages_Thread( $t1 );
+
+		$this->assertNotNull( $thread->last_message_id );
+		$this->assertEquals( 'Foo', $thread->last_message_subject );
+		$this->assertEquals( $u1, $thread->last_sender_id );
+		$this->assertEquals( $date, $thread->last_message_date );
+		$this->assertEquals( 'Bar and baz.', $thread->last_message_content );
+	}
 }
Index: src/bp-messages/bp-messages-template.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/bp-messages/bp-messages-template.php	(revision 10030)
+++ src/bp-messages/bp-messages-template.php	(revision )
@@ -1846,13 +1846,6 @@
 	public function __construct( $thread_id = 0, $order = 'ASC', $args = array() ) {
 		$this->thread        = new BP_Messages_Thread( $thread_id, $order, $args );
 		$this->message_count = count( $this->thread->messages );
-
-		$last_message_index                 = $this->message_count - 1;
-		$this->thread->last_message_id      = $this->thread->messages[ $last_message_index ]->id;
-		$this->thread->last_message_date    = $this->thread->messages[ $last_message_index ]->date_sent;
-		$this->thread->last_sender_id       = $this->thread->messages[ $last_message_index ]->sender_id;
-		$this->thread->last_message_subject = $this->thread->messages[ $last_message_index ]->subject;
-		$this->thread->last_message_content = $this->thread->messages[ $last_message_index ]->message;
 	}
 
 	/**
Index: src/bp-messages/classes/class-bp-messages-thread.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/bp-messages/classes/class-bp-messages-thread.php	(revision 10030)
+++ src/bp-messages/classes/class-bp-messages-thread.php	(revision )
@@ -164,6 +164,13 @@
 			$this->messages = array_reverse( $this->messages );
 		}
 
+		$last_message_index         = count( $this->messages ) - 1;
+		$this->last_message_id      = $this->messages[ $last_message_index ]->id;
+		$this->last_message_date    = $this->messages[ $last_message_index ]->date_sent;
+		$this->last_sender_id       = $this->messages[ $last_message_index ]->sender_id;
+		$this->last_message_subject = $this->messages[ $last_message_index ]->subject;
+		$this->last_message_content = $this->messages[ $last_message_index ]->message;
+
 		foreach ( (array) $this->messages as $key => $message ) {
 			$this->sender_ids[ $message->sender_id ] = $message->sender_id;
 		}
