Index: src/bp-blogs/bp-blogs-functions.php
===================================================================
--- src/bp-blogs/bp-blogs-functions.php
+++ src/bp-blogs/bp-blogs-functions.php
@@ -523,7 +523,7 @@
 
 			$activity_content = $post->post_content;
 
-			bp_blogs_record_activity( array(
+			$activity_id = bp_blogs_record_activity( array(
 				'user_id'           => (int) $post->post_author,
 				'content'           => apply_filters( 'bp_blogs_activity_new_post_content',      $activity_content, $post, $post_permalink ),
 				'primary_link'      => apply_filters( 'bp_blogs_activity_new_post_primary_link', $post_permalink,   $post_id               ),
@@ -531,7 +531,11 @@
 				'item_id'           => $blog_id,
 				'secondary_item_id' => $post_id,
 				'recorded_time'     => $post->post_date_gmt,
-			));
+			) );
+
+			// save post title in activity meta
+			bp_activity_update_meta( $activity_id, 'post_title', $post->post_title );
+			bp_activity_update_meta( $activity_id, 'post_url',   $post_permalink );
 		}
 
 		// Update the blogs last activity
@@ -574,6 +578,56 @@
 	$activity->content = $post->post_content;
 	$activity->save();
 
+	// update post title in activity meta
+	$existing_title = bp_activity_get_meta( $activity_id, 'post_title' );
+	if ( $post->post_title !== $existing_title ) {
+		bp_activity_update_meta( $activity_id, 'post_title', $post->post_title );
+
+		// now update activity meta for post comments... sigh
+		$comments = get_comments( array( 'post_id' => $post->ID ) );
+
+		if ( ! empty( $comments ) ) {
+			$comment_ids = wp_list_pluck( $comments, 'comment_ID' );
+
+			// setup activity args
+			$args = array(
+				'update_meta_cache' => false,
+				'show_hidden'       => true,
+				'per_page'          => 99999,
+			);
+
+			// old-style "new_blog_comment" activity items
+			if ( bp_disable_blogforum_comments() ) {
+				$args['filter'] = array(
+					'object'     => buddypress()->blogs->id,
+					'action'     => 'new_blog_comment',
+					'secondary_id' => implode( ',', $comment_ids ),
+				);
+
+			// activity comments connected to a blog post
+			} else {
+				$args['meta_query'] = array( array(
+					'key'     => 'bp_blogs_post_comment_id',
+					'value'   => $comment_ids,
+					'compare' => 'IN',
+				) );
+				$args['type'] = 'activity_comment';
+				$args['display_comments'] = 'stream';
+			}
+
+			$activities = bp_activity_get( $args );
+
+			if ( ! empty( $activities['activities'] ) ) {
+				$activity_ids = wp_list_pluck( $activities['activities'], 'id' );
+				foreach ( $activity_ids as $aid ) {
+					bp_activity_update_meta( $aid, 'post_title', $post->post_title );					
+				}
+			}
+
+			unset( $activities, $comment_ids, $comments );
+		}
+	}
+
 	// add post comment status to activity meta if closed
 	if( 'closed' == $post->comment_status ) {
 		bp_activity_update_meta( $activity_id, 'post_comment_status', $post->comment_status );
@@ -671,7 +725,11 @@
 			$args['secondary_item_id'] = $comment_id;
 
 			// record the activity entry
-			bp_blogs_record_activity( $args );
+			$activity_id = bp_blogs_record_activity( $args );
+
+			// add some post info in activity meta
+			bp_activity_update_meta( $activity_id, 'post_title', $recorded_comment->post->post_title );
+			bp_activity_update_meta( $activity_id, 'post_url',   add_query_arg( 'p', $recorded_comment->post->ID, home_url( '/' ) ) );
 
 		// record comment as BP activity comment under the parent 'new_blog_post'
 		// activity item
@@ -735,6 +793,8 @@
 				if ( empty( $args['id'] ) ) {
 					// add meta to activity comment
 					bp_activity_update_meta( $comment_activity_id, 'bp_blogs_post_comment_id', $comment_id );
+					bp_activity_update_meta( $comment_activity_id, 'post_title', $recorded_comment->post->post_title );
+					bp_activity_update_meta( $comment_activity_id, 'post_url', add_query_arg( 'p', $recorded_comment->post->ID, home_url( '/' ) ) );
 
 					// add meta to comment
 					add_comment_meta( $comment_id, 'bp_activity_comment_id', $comment_activity_id );
Index: tests/phpunit/testcases/blogs/functions.php
===================================================================
--- tests/phpunit/testcases/blogs/functions.php
+++ tests/phpunit/testcases/blogs/functions.php
@@ -394,6 +394,138 @@
 		$this->assertFalse( $this->activity_exists_for_post( $post_id ), 'Unpublished post should not have activity' );
 	}
 
+	/**
+	 * @group bp_blogs_catch_transition_post_status
+	 */
+	public function test_update_blog_post_and_activity_meta() {
+		$post_id = $this->factory->post->create( array(
+			'post_status' => 'publish',
+			'post_type' => 'post',
+			'post_title' => 'First title',
+		) );
+
+		wp_update_post( array(
+			'ID'        => $post_id,
+			'post_title' => 'Second title',
+		) );
+
+		$activity_id = bp_activity_get_activity_id( array(
+			'component'         => buddypress()->blogs->id,
+			'type'              => 'new_blog_post',
+			'item_id'           => get_current_blog_id(),
+			'secondary_item_id' => $post_id,
+		) );
+
+		$this->assertEquals( 'Second title', bp_activity_get_meta( $activity_id, 'post_title' ) );
+	}
+
+	/**
+	 * @group bp_blogs_catch_transition_post_status
+	 */
+	public function test_update_blog_post_and_new_blog_comment_activity_meta() {
+		// save the current user and override logged-in user
+		$old_user = get_current_user_id();
+		$u = $this->create_user();
+		$this->set_current_user( $u );
+		$userdata = get_userdata( $u );
+
+		// create the blog post
+		$post_id = $this->factory->post->create( array(
+			'post_status' => 'publish',
+			'post_type' => 'post',
+			'post_title' => 'First title',
+		) );
+
+		// create the blog comment
+		$comment_id = wp_new_comment( array(
+			'comment_post_ID'      => $post_id,
+			'comment_author'       => $userdata->user_nicename,
+			'comment_author_url'   => 'http://buddypress.org',
+			'comment_author_email' => $userdata->user_email,
+			'comment_content'      => 'this is a blog comment',
+			'comment_type'         => '',
+			'comment_parent'       => 0,
+			'user_id'              => $u,
+		) );
+
+		// update the initial blog post
+		wp_update_post( array(
+			'ID'        => $post_id,
+			'post_title' => 'Second title',
+		) );
+
+		// grab the activity ID for the blog comment
+		$activity_id = bp_activity_get_activity_id( array(
+			'component'         => buddypress()->blogs->id,
+			'type'              => 'new_blog_comment',
+			'secondary_item_id' => $comment_id,
+		) );
+
+		// see if blog comment activity meta matches the post items
+		$this->assertEquals( 'Second title', bp_activity_get_meta( $activity_id, 'post_title' ) );
+		$this->assertEquals( add_query_arg( 'p', $post_id, home_url( '/' ) ), bp_activity_get_meta( $activity_id, 'post_url' ) );
+
+		// reset
+		$this->set_current_user( $old_user );
+	}
+
+	/**
+	 * @group bp_blogs_catch_transition_post_status
+	 */
+	public function test_update_blog_post_and_activity_comment_meta() {
+		// save the current user and override logged-in user
+		$old_user = get_current_user_id();
+		$u = $this->create_user();
+		$this->set_current_user( $u );
+		$userdata = get_userdata( $u );
+
+		// create the blog post
+		$post_id = $this->factory->post->create( array(
+			'post_status' => 'publish',
+			'post_type' => 'post',
+			'post_title' => 'First title',
+		) );
+
+		// let's use activity comments instead of single "new_blog_comment" activity items
+		add_filter( 'bp_disable_blogforum_comments', '__return_false' );
+
+		// create the blog comment
+		$comment_id = wp_new_comment( array(
+			'comment_post_ID'      => $post_id,
+			'comment_author'       => $userdata->user_nicename,
+			'comment_author_url'   => 'http://buddypress.org',
+			'comment_author_email' => $userdata->user_email,
+			'comment_content'      => 'this is a blog comment',
+			'comment_type'         => '',
+			'comment_parent'       => 0,
+			'user_id'              => $u,
+		) );
+
+		// update the initial blog post
+		wp_update_post( array(
+			'ID'        => $post_id,
+			'post_title' => 'Second title',
+		) );
+
+		// grab the activity ID for the blog comment
+		$activity_id = bp_activity_get_activity_id( array(
+			'type'              => 'activity_comment',
+			'display_comments'  => 'stream',
+			'meta_query'        => array( array(
+				'key'     => 'bp_blogs_post_comment_id',
+				'value'   => $comment_id,
+			) )
+		) );
+
+		// see if blog comment activity meta matches the post items
+		$this->assertEquals( 'Second title', bp_activity_get_meta( $activity_id, 'post_title' ) );
+		$this->assertEquals( add_query_arg( 'p', $post_id, home_url( '/' ) ), bp_activity_get_meta( $activity_id, 'post_url' ) );
+
+		// reset
+		$this->set_current_user( $old_user );
+		remove_filter( 'bp_disable_blogforum_comments', '__return_false' );
+	}
+
 	protected function activity_exists_for_post( $post_id ) {
 		$a = bp_activity_get( array(
 			'component' => buddypress()->blogs->id,
