Index: includes/common/widgets.php
===================================================================
--- includes/common/widgets.php	(revision 5223)
+++ includes/common/widgets.php	(working copy)
@@ -743,8 +743,7 @@
 					'post_status'         => array( bbp_get_public_status_id(), bbp_get_closed_status_id() ),
 					'ignore_sticky_posts' => true,
 					'no_found_rows'       => true,
-					'meta_key'            => '_bbp_last_active_time',
-					'orderby'             => 'meta_value',
+					'orderby'             => 'modified',
 					'order'               => 'DESC',
 				);
 				break;
Index: includes/forums/functions.php
===================================================================
--- includes/forums/functions.php	(revision 5223)
+++ includes/forums/functions.php	(working copy)
@@ -1167,17 +1167,15 @@
 			}
 		}
 
-		// Setup recent topic query vars
-		$post_vars = array(
+		// Get the most recent topic in this forum_id
+		$recent_topic = get_posts( array(
 			'post_parent' => $forum_id,
 			'post_type'   => bbp_get_topic_post_type(),
-			'meta_key'    => '_bbp_last_active_time',
-			'orderby'     => 'meta_value',
+			'orderby'     => 'modified',
+			'order'       => 'DESC',
 			'numberposts' => 1
-		);
+		) );
 
-		// Get the most recent topic in this forum_id
-		$recent_topic = get_posts( $post_vars );
 		if ( !empty( $recent_topic ) ) {
 			$topic_id = $recent_topic[0]->ID;
 		}
@@ -1347,10 +1345,20 @@
 	if ( empty( $new_time ) )
 		$new_time = get_post_field( 'post_date', bbp_get_forum_last_active_id( $forum_id ) );
 
-	// Update only if there is a time
-	if ( !empty( $new_time ) )
+	// Update only if published
+	if ( !empty( $new_time ) ) {
+
+		// Update forum's meta - not used since 2.6
 		update_post_meta( $forum_id, '_bbp_last_active_time', $new_time );
 
+		// Update forum's post_modified date - since 2.6
+		wp_update_post( array(
+			'ID'                => $forum_id,
+			'post_modified'     => $new_time,
+			'post_modified_gmt' => get_gmt_from_date( $new_time )
+		) );
+	}
+
 	return (int) apply_filters( 'bbp_update_forum_last_active', $new_time, $forum_id );
 }
 
@@ -1906,8 +1914,8 @@
  * @return Position change based on sort
  */
 function _bbp_forum_query_usort_subforum_ids( $a = 0, $b = 0 ) {
-	$ta = get_post_meta( $a, '_bbp_last_active_time', true );
-	$tb = get_post_meta( $b, '_bbp_last_active_time', true );
+	$ta = get_post_field( 'post_modified', $a );
+	$tb = get_post_field( 'post_modified', $b );
 	return ( $ta < $tb ) ? -1 : 1;
 }
 
Index: includes/forums/template.php
===================================================================
--- includes/forums/template.php	(revision 5223)
+++ includes/forums/template.php	(working copy)
@@ -447,6 +447,7 @@
  * Allow forum rows to have adminstrative actions
  *
  * @since bbPress (r3653)
+ *
  * @uses do_action()
  * @todo Links and filter
  */
@@ -502,12 +503,7 @@
 	 *
 	 * @param int $forum_id Optional. Forum id
 	 * @uses bbp_get_forum_id() To get the forum id
-	 * @uses get_post_meta() To retrieve forum last active meta
-	 * @uses bbp_get_forum_last_reply_id() To get forum's last reply id
-	 * @uses get_post_field() To get the post date of the reply
-	 * @uses bbp_get_forum_last_topic_id() To get forum's last topic id
-	 * @uses bbp_get_topic_last_active_time() To get time when the topic was
-	 *                                    last active
+	 * @uses get_post_field() To get the post modified date of the forum
 	 * @uses bbp_convert_date() To convert the date
 	 * @uses bbp_get_time_since() To get time in since format
 	 * @uses apply_filters() Calls 'bbp_get_forum_last_active' with last
@@ -515,26 +511,11 @@
 	 * @return string Forum last update date/time (freshness)
 	 */
 	function bbp_get_forum_last_active_time( $forum_id = 0 ) {
+		$forum_id      = bbp_get_forum_id( $forum_id );
+		$post_modified = get_post_field( 'post_modified', $forum_id );
+		$last_active   = bbp_get_time_since( bbp_convert_date( $post_modified ) );
 
-		// Verify forum and get last active meta
-		$forum_id    = bbp_get_forum_id( $forum_id );
-		$last_active = get_post_meta( $forum_id, '_bbp_last_active_time', true );
-
-		if ( empty( $last_active ) ) {
-			$reply_id = bbp_get_forum_last_reply_id( $forum_id );
-			if ( !empty( $reply_id ) ) {
-				$last_active = get_post_field( 'post_date', $reply_id );
-			} else {
-				$topic_id = bbp_get_forum_last_topic_id( $forum_id );
-				if ( !empty( $topic_id ) ) {
-					$last_active = bbp_get_topic_last_active_time( $topic_id );
-				}
-			}
-		}
-
-		$active_time = !empty( $last_active ) ? bbp_get_time_since( bbp_convert_date( $last_active ) ) : '';
-
-		return apply_filters( 'bbp_get_forum_last_active', $active_time, $forum_id );
+		return apply_filters( 'bbp_get_forum_last_active', $last_active, $forum_id );
 	}
 
 /**
@@ -2226,7 +2207,7 @@
 
 		return apply_filters( 'bbp_get_form_forum_visibility', esc_attr( $forum_visibility ) );
 	}
-	
+
 /**
  * Output checked value of forum subscription
  *
Index: includes/search/template.php
===================================================================
--- includes/search/template.php	(revision 5223)
+++ includes/search/template.php	(working copy)
@@ -50,7 +50,7 @@
 		'post_type'           => $default_post_type,         // Forums, topics, and replies
 		'posts_per_page'      => bbp_get_replies_per_page(), // This many
 		'paged'               => bbp_get_paged(),            // On this page
-		'orderby'             => 'date',                     // Sorted by date
+		'orderby'             => 'modified',                     // Sorted by date
 		'order'               => 'DESC',                     // Most recent first
 		'ignore_sticky_posts' => true,                       // Stickies not supported
 		's'                   => bbp_get_search_terms(),     // This is a search
@@ -141,7 +141,7 @@
 				'prev_text' => is_rtl() ? '&rarr;' : '&larr;',
 				'next_text' => is_rtl() ? '&larr;' : '&rarr;',
 				'mid_size'  => 1,
-				'add_args'  => $add_args, 
+				'add_args'  => $add_args,
 			) )
 		);
 
Index: includes/topics/functions.php
===================================================================
--- includes/topics/functions.php	(revision 5223)
+++ includes/topics/functions.php	(working copy)
@@ -2524,7 +2524,15 @@
 
 	// Update only if published
 	if ( !empty( $new_time ) ) {
+
+		// Update topic's meta - not used since 2.6
 		update_post_meta( $topic_id, '_bbp_last_active_time', $new_time );
+
+		// Update topic's post_modified date - since 2.6
+		wp_update_post( array(
+			'ID'            => $topic_id,
+			'post_modified' => $new_time
+		) );
 	}
 
 	return apply_filters( 'bbp_update_topic_last_active_time', $new_time, $topic_id );
@@ -3455,7 +3463,7 @@
 					<guid><?php bbp_topic_permalink(); ?></guid>
 					<title><![CDATA[<?php bbp_topic_title(); ?>]]></title>
 					<link><?php bbp_topic_permalink(); ?></link>
-					<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_meta( bbp_get_topic_id(), '_bbp_last_active_time', true ) ); ?></pubDate>
+					<pubDate><?php echo mysql2date('D, d M Y H:i:s +0000', get_post_field( 'post_modified', bbp_get_topic_id() ) ); ?></pubDate>
 					<dc:creator><?php the_author() ?></dc:creator>
 
 					<?php if ( !post_password_required() ) : ?>
Index: includes/topics/template.php
===================================================================
--- includes/topics/template.php	(revision 5223)
+++ includes/topics/template.php	(working copy)
@@ -97,6 +97,7 @@
  * - New Style: Topics appear as "lead" posts, ahead of replies
  *
  * @since bbPress (r2954)
+ *
  * @param $show_lead Optional. Default false
  * @return bool Yes if the topic appears as a lead, otherwise false
  */
@@ -151,8 +152,7 @@
 	$default = array(
 		'post_type'      => bbp_get_topic_post_type(), // Narrow query down to bbPress topics
 		'post_parent'    => $default_post_parent,      // Forum ID
-		'meta_key'       => '_bbp_last_active_time',   // Make sure topic has some last activity time
-		'orderby'        => 'meta_value',              // 'meta_value', 'author', 'date', 'title', 'modified', 'parent', rand',
+		'orderby'        => 'modified',                // 'meta_value', 'author', 'date', 'title', 'modified', 'parent', rand',
 		'order'          => 'DESC',                    // 'ASC', 'DESC'
 		'posts_per_page' => bbp_get_topics_per_page(), // Topics per page
 		'paged'          => bbp_get_paged(),           // Page Number
@@ -279,8 +279,7 @@
 				$sticky_query = array(
 					'post_type'   => bbp_get_topic_post_type(),
 					'post_parent' => 'any',
-					'meta_key'    => '_bbp_last_active_time',
-					'orderby'     => 'meta_value',
+					'orderby'     => 'modified',
 					'order'       => 'DESC',
 					'include'     => $stickies
 				);
@@ -1778,10 +1777,8 @@
 	 * @since bbPress (r2625)
 	 *
 	 * @param int $topic_id Optional. Topic id
-	 * @uses bbp_get_topic_id() To get topic id
-	 * @uses get_post_meta() To get the topic lst active meta
-	 * @uses bbp_get_topic_last_reply_id() To get topic last reply id
-	 * @uses get_post_field() To get the post date of topic/reply
+	 * @uses bbp_get_topic_id() To verify the topic id
+	 * @uses get_post_field() To get the post date of topic
 	 * @uses bbp_convert_date() To convert date
 	 * @uses bbp_get_time_since() To get time in since format
 	 * @uses apply_filters() Calls 'bbp_get_topic_last_active' with topic
@@ -1789,21 +1786,10 @@
 	 * @return string Topic freshness
 	 */
 	function bbp_get_topic_last_active_time( $topic_id = 0 ) {
-		$topic_id = bbp_get_topic_id( $topic_id );
+		$topic_id      = bbp_get_topic_id( $topic_id );
+		$post_modified = get_post_field( 'post_modified', $topic_id );
+		$last_active   = bbp_get_time_since( bbp_convert_date( $post_modified ) );
 
-		// Try to get the most accurate freshness time possible
-		$last_active = get_post_meta( $topic_id, '_bbp_last_active_time', true );
-		if ( empty( $last_active ) ) {
-			$reply_id = bbp_get_topic_last_reply_id( $topic_id );
-			if ( !empty( $reply_id ) ) {
-				$last_active = get_post_field( 'post_date', $reply_id );
-			} else {
-				$last_active = get_post_field( 'post_date', $topic_id );
-			}
-		}
-
-		$last_active = !empty( $last_active ) ? bbp_get_time_since( bbp_convert_date( $last_active ) ) : '';
-
 		// Return the time since
 		return apply_filters( 'bbp_get_topic_last_active', $last_active, $topic_id );
 	}
