Index: includes/common/widgets.php
===================================================================
--- includes/common/widgets.php	(revision 5220)
+++ 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'             => 'date',
 					'order'               => 'DESC',
 				);
 				break;
Index: includes/forums/functions.php
===================================================================
--- includes/forums/functions.php	(revision 5220)
+++ includes/forums/functions.php	(working copy)
@@ -584,6 +584,7 @@
  * Handle the saving of core forum metadata (Status, Visibility, and Type)
  *
  * @since bbPress (r3678)
+ *
  * @param int $forum_id
  * @uses bbp_is_forum_closed() To check if forum is closed
  * @uses bbp_close_forum() To close forum
@@ -666,9 +667,10 @@
  * @since bbPress (r2746)
  *
  * @param int $forum_id forum id
+ * @uses bbp_get_forum_id() To verify the forum id
  * @uses do_action() Calls 'bbp_close_forum' with the forum id
  * @uses update_post_meta() To add the previous status to a meta
- * @uses do_action() Calls 'bbp_opened_forum' with the forum id
+ * @uses do_action() Calls 'bbp_closed_forum' with the forum id
  * @return mixed False or {@link WP_Error} on failure, forum id on success
  */
 function bbp_close_forum( $forum_id = 0 ) {
@@ -690,8 +692,8 @@
  * @since bbPress (r2746)
  *
  * @param int $forum_id forum id
+ * @uses bbp_get_forum_id() To verify the forum id
  * @uses do_action() Calls 'bbp_open_forum' with the forum id
- * @uses get_post_meta() To get the previous status
  * @uses update_post_meta() To delete the previous status meta
  * @uses do_action() Calls 'bbp_opened_forum' with the forum id
  * @return mixed False or {@link WP_Error} on failure, forum id on success
@@ -715,7 +717,10 @@
  * @since bbPress (r2746)
  *
  * @param int $forum_id Optional. Forum id
+ * @uses bbp_get_forum_id() To verify the forum id
+ * @uses do_action() Calls 'bbp_categorize_forum' with the forum id
  * @uses update_post_meta() To update the forum category meta
+ * @uses do_action() Calls 'bbp_categorized_forum' with the forum id
  * @return bool False on failure, true on success
  */
 function bbp_categorize_forum( $forum_id = 0 ) {
@@ -737,7 +742,10 @@
  * @since bbPress (r2746)
  *
  * @param int $forum_id Optional. Forum id
- * @uses delete_post_meta() To delete the forum category meta
+ * @uses bbp_get_forum_id() To verify the forum id
+ * @uses do_action() Calls 'bbp_normalize_forum' with the forum id
+ * @uses update_post_meta() To delete the forum category meta
+ * @uses do_action() Calls 'bbp_normalized_forum' with the forum id
  * @return bool False on failure, true on success
  */
 function bbp_normalize_forum( $forum_id = 0 ) {
@@ -758,8 +766,15 @@
  *
  * @since bbPress (r2746)
  *
+ * @global WPDB $wpdb
  * @param int $forum_id Optional. Forum id
- * @uses update_post_meta() To update the forum private meta
+ * @uses bbp_get_forum_id() To verify the forum id
+ * @uses do_action() Calls 'bbp_publicize_forum' with the forum id
+ * @uses bbp_get_private_forum_ids() To get private forum id's
+ * @uses bbp_get_hidden_forum_ids() To get hidden forum id's
+ * @uses bbp_get_public_status_id() To get public status id
+ * @uses update_option() To update the private and hidden post ID pointers
+ * @uses do_action() Calls 'bbp_publicized_forum' with the forum id
  * @return bool False on failure, true on success
  */
 function bbp_publicize_forum( $forum_id = 0, $current_visibility = '' ) {
@@ -818,8 +833,15 @@
  *
  * @since bbPress (r2746)
  *
+ * @global WPDB $wpdb
  * @param int $forum_id Optional. Forum id
- * @uses update_post_meta() To update the forum private meta
+ * @uses bbp_get_forum_id() To verify the forum id
+ * @uses do_action() Calls 'bbp_privatize_forum' with the forum id
+ * @uses bbp_get_private_status_id() To get private status id
+ * @uses bbp_get_hidden_forum_ids() To get hidden forum id's
+ * @uses bbp_get_private_forum_ids() To get private forum id's
+ * @uses update_option() To update the private and hidden post ID pointers
+ * @uses do_action() Calls 'bbp_privatized_forum' with the forum id
  * @return bool False on failure, true on success
  */
 function bbp_privatize_forum( $forum_id = 0, $current_visibility = '' ) {
@@ -868,8 +890,15 @@
  *
  * @since bbPress (r2996)
  *
+ * @global WPDB $wpdb
  * @param int $forum_id Optional. Forum id
- * @uses update_post_meta() To update the forum private meta
+ * @uses bbp_get_forum_id() To verify the forum id
+ * @uses do_action() Calls 'bbp_hide_forum' with the forum id
+ * @uses bbp_get_hidden_status_id() To get hidden status id
+ * @uses bbp_get_private_forum_ids() To get private forum id's
+ * @uses bbp_get_hidden_forum_ids() To get hidden forum id's
+ * @uses update_option() To update the private and hidden post ID pointers
+ * @uses do_action() Calls 'bbp_hid_forum' with the forum id
  * @return bool False on failure, true on success
  */
 function bbp_hide_forum( $forum_id = 0, $current_visibility = '' ) {
@@ -1144,7 +1173,9 @@
  * @uses bbp_forum_query_subforum_ids() To get the subforum ids
  * @uses bbp_update_forum_last_topic_id() To update the last topic id of child
  *                                         forums
+ * @uses bbp_get_topic_post_type() To set the topic post type query variable
  * @uses get_posts() To get the most recent topic in the forum
+ * @uses bbp_is_topic_published() To check if the topic is already published
  * @uses update_post_meta() To update the forum's last active id meta
  * @uses apply_filters() Calls 'bbp_update_forum_last_topic_id' with the last
  *                        reply id and forum id
@@ -1171,8 +1202,8 @@
 		$post_vars = array(
 			'post_parent' => $forum_id,
 			'post_type'   => bbp_get_topic_post_type(),
-			'meta_key'    => '_bbp_last_active_time',
-			'orderby'     => 'meta_value',
+			'orderby'     => 'date',
+			'order'       => 'DESC',
 			'numberposts' => 1
 		);
 
@@ -1348,8 +1379,9 @@
 		$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 ) )
+	if ( !empty( $new_time ) ) {
 		update_post_meta( $forum_id, '_bbp_last_active_time', $new_time );
+	}
 
 	return (int) apply_filters( 'bbp_update_forum_last_active', $new_time, $forum_id );
 }
@@ -1901,13 +1933,14 @@
  * Callback to sort forum ID's based on last active time
  *
  * @since bbPress (r3789)
+ *
  * @param int $a First forum ID to compare
  * @param int $b Second forum ID to compare
  * @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;
 }
 
@@ -2247,6 +2280,7 @@
  * a forum that is being deleted.
  *
  * @since bbPress (r3668)
+ *
  * @uses bbp_get_forum_id() To get the forum id
  * @uses bbp_is_forum() To check if the passed id is a forum
  * @uses do_action() Calls 'bbp_delete_forum' with the forum id
@@ -2268,6 +2302,7 @@
  * a forum that is being trashed.
  *
  * @since bbPress (r3668)
+ *
  * @uses bbp_get_forum_id() To get the forum id
  * @uses bbp_is_forum() To check if the passed id is a forum
  * @uses do_action() Calls 'bbp_trash_forum' with the forum id
@@ -2285,6 +2320,7 @@
  * Called before untrashing a forum
  *
  * @since bbPress (r3668)
+ *
  * @uses bbp_get_forum_id() To get the forum id
  * @uses bbp_is_forum() To check if the passed id is a forum
  * @uses do_action() Calls 'bbp_untrash_forum' with the forum id
@@ -2304,6 +2340,7 @@
  * Called after deleting a forum
  *
  * @since bbPress (r3668)
+ *
  * @uses bbp_get_forum_id() To get the forum id
  * @uses bbp_is_forum() To check if the passed id is a forum
  * @uses do_action() Calls 'bbp_deleted_forum' with the forum id
@@ -2321,6 +2358,7 @@
  * Called after trashing a forum
  *
  * @since bbPress (r3668)
+ *
  * @uses bbp_get_forum_id() To get the forum id
  * @uses bbp_is_forum() To check if the passed id is a forum
  * @uses do_action() Calls 'bbp_trashed_forum' with the forum id
@@ -2338,6 +2376,7 @@
  * Called after untrashing a forum
  *
  * @since bbPress (r3668)
+ *
  * @uses bbp_get_forum_id() To get the forum id
  * @uses bbp_is_forum() To check if the passed id is a forum
  * @uses do_action() Calls 'bbp_untrashed_forum' with the forum id
Index: includes/forums/template.php
===================================================================
--- includes/forums/template.php	(revision 5220)
+++ includes/forums/template.php	(working copy)
@@ -16,6 +16,7 @@
  * Output the unique id of the custom post type for forums
  *
  * @since bbPress (r2857)
+ *
  * @uses bbp_get_forum_post_type() To get the forum post type
  */
 function bbp_forum_post_type() {
@@ -447,6 +448,7 @@
  * Allow forum rows to have adminstrative actions
  *
  * @since bbPress (r3653)
+ *
  * @uses do_action()
  * @todo Links and filter
  */
@@ -502,7 +504,6 @@
 	 *
 	 * @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
@@ -516,19 +517,19 @@
 	 */
 	function bbp_get_forum_last_active_time( $forum_id = 0 ) {
 
-		// 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 );
+		// Verify forum id
+		$forum_id = bbp_get_forum_id( $forum_id );
 
-		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 );
-				}
+		// Check the forum for the last reply id and use this time stamp
+		$reply_id = bbp_get_forum_last_reply_id( $forum_id );
+		if ( !empty( $reply_id ) ) {
+			$last_active = get_post_field( 'post_date', $reply_id );
+
+		// No reply's, lets try the last topic and use that time stamp
+		} 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 );
 			}
 		}
 
@@ -1559,6 +1560,7 @@
  * Is the forum open?
  *
  * @since bbPress (r2746)
+ *
  * @param int $forum_id Optional. Forum id
  *
  * @param int $forum_id Optional. Forum id
@@ -2226,7 +2228,7 @@
 
 		return apply_filters( 'bbp_get_form_forum_visibility', esc_attr( $forum_visibility ) );
 	}
-	
+
 /**
  * Output checked value of forum subscription
  *
Index: includes/replies/functions.php
===================================================================
--- includes/replies/functions.php	(revision 5220)
+++ includes/replies/functions.php	(working copy)
@@ -866,7 +866,7 @@
 		update_post_meta( $reply_id, '_bbp_author_ip', bbp_current_author_ip(), false );
 
 		// Last active time
-		$last_active_time = current_time( 'mysql' );
+		$last_active_time = get_post_field( 'post_date', $reply_id );
 
 		// Walk up ancestors and do the dirty work
 		bbp_update_reply_walker( $reply_id, $last_active_time, $forum_id, $topic_id, false );
@@ -1395,7 +1395,7 @@
 		bbp_update_reply_to( $child->ID, $parent );
 
 	// Remove reply_to from moved reply
-	delete_post_meta( $move_reply->ID, '_bbp_reply_to' ); 
+	delete_post_meta( $move_reply->ID, '_bbp_reply_to' );
 
 	// It is a new topic and we need to set some default metas to make
 	// the topic display in bbp_has_topics() list
@@ -1867,6 +1867,7 @@
  * Check if autoembeds are enabled and hook them in if so
  *
  * @since bbPress (r3752)
+ *
  * @global WP_Embed $wp_embed
  */
 function bbp_reply_content_autoembed() {
Index: includes/topics/functions.php
===================================================================
--- includes/topics/functions.php	(revision 5220)
+++ includes/topics/functions.php	(working copy)
@@ -798,6 +798,7 @@
  * @uses bbp_get_current_user_id() To get the current user id
  * @yses bbp_get_topic_forum_id() To get the topic forum id
  * @uses update_post_meta() To update the topic metas
+ * @uses get_post_field() To get the topic's last active time
  * @uses set_transient() To update the flood check transient for the ip
  * @uses bbp_update_user_last_posted() To update the users last posted time
  * @uses bbp_is_subscriptions_active() To check if the subscriptions feature is
@@ -887,7 +888,7 @@
 		update_post_meta( $topic_id, '_bbp_author_ip', bbp_current_author_ip(), false );
 
 		// Last active time
-		$last_active = current_time( 'mysql' );
+		$last_active = get_post_field( 'post_date', $topic_id );
 
 		// Reply topic meta
 		bbp_update_topic_last_reply_id      ( $topic_id, 0            );
@@ -909,6 +910,7 @@
  * function can be costly to run but is necessary to keep everything accurate.
  *
  * @since bbPress (r2800)
+ *
  * @param int $topic_id Topic id
  * @param string $last_active_time Optional. Last active time
  * @param int $forum_id Optional. Forum id
@@ -965,7 +967,7 @@
 					'last_topic_id'      => $topic_id,
 					'last_reply_id'      => $reply_id,
 					'last_active_id'     => $active_id,
-					'last_active_time'   => 0,
+					'last_active_time'   => $last_active_time,
 					'last_active_status' => $topic_status
 				) );
 			}
@@ -3374,6 +3376,7 @@
  * Check if autoembeds are enabled and hook them in if so
  *
  * @since bbPress (r3752)
+ *
  * @global WP_Embed $wp_embed
  */
 function bbp_topic_content_autoembed() {
@@ -3455,7 +3458,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_date', 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 5220)
+++ 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'        => 'date',                    // '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,9 +279,8 @@
 				$sticky_query = array(
 					'post_type'   => bbp_get_topic_post_type(),
 					'post_parent' => 'any',
-					'meta_key'    => '_bbp_last_active_time',
-					'orderby'     => 'meta_value',
-					'order'       => 'DESC',
+					'orderby'     => 'date',
+					'order'       => 'ASC',
 					'include'     => $stickies
 				);
 
@@ -1778,10 +1777,10 @@
 	 * @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_id() To verify the topic id
 	 * @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 get_post_field() To get the post date of topic
+	 * @uses get_post_field() To get the post date of reply
 	 * @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
@@ -1791,15 +1790,14 @@
 	function bbp_get_topic_last_active_time( $topic_id = 0 ) {
 		$topic_id = bbp_get_topic_id( $topic_id );
 
-		// 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 );
-			}
+		// Check the topic for the last reply id
+		$reply_id = bbp_get_topic_last_reply_id( $topic_id );
+
+		// If we have a reply use that timestamp, if not use the topic timestamp
+		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 ) ) : '';
@@ -3756,6 +3754,7 @@
  * Allow topic rows to have adminstrative actions
  *
  * @since bbPress (r3653)
+ *
  * @uses do_action()
  * @todo Links and filter
  */
@@ -3767,6 +3766,7 @@
  * Output value of topic tags field
  *
  * @since bbPress (r2976)
+ *
  * @uses bbp_get_form_topic_tags() To get the value of topic tags field
  */
 function bbp_form_topic_tags() {
