Index: /trunk/src/includes/core/actions.php
===================================================================
--- /trunk/src/includes/core/actions.php	(revision 6584)
+++ /trunk/src/includes/core/actions.php	(revision 6585)
@@ -385,13 +385,4 @@
 add_action( 'bbp_user_edit_after', 'bbp_user_edit_after' );
 
-// New forum/topic/reply caches
-// @todo Investigate why clearing is necessary on both pre & post hooks
-add_action( 'bbp_new_forum_pre_extras',  'bbp_clean_post_cache' );
-add_action( 'bbp_new_forum_post_extras', 'bbp_clean_post_cache' );
-add_action( 'bbp_new_topic_pre_extras',  'bbp_clean_post_cache' );
-add_action( 'bbp_new_topic_post_extras', 'bbp_clean_post_cache' );
-add_action( 'bbp_new_reply_pre_extras',  'bbp_clean_post_cache' );
-add_action( 'bbp_new_reply_post_extras', 'bbp_clean_post_cache' );
-
 // Clean bbPress post caches when WordPress's is cleaned
 add_action( 'clean_post_cache', 'bbp_clean_post_cache', 10, 2 );
Index: /trunk/src/includes/core/cache.php
===================================================================
--- /trunk/src/includes/core/cache.php	(revision 6584)
+++ /trunk/src/includes/core/cache.php	(revision 6585)
@@ -136,16 +136,4 @@
 function bbp_clean_post_cache( $post_id = null, $post = null ) {
 
-	// Get the post object.
-	if ( null !== $post ) {
-		$post = get_post( $post );
-	} else {
-		$post = get_post( $post_id );
-	}
-
-	// Bail if no post
-	if ( empty( $post ) ) {
-		return;
-	}
-
 	// Child query types to clean
 	$post_types = array(
@@ -159,14 +147,4 @@
 		return;
 	}
-
-	// Be sure we haven't recached the post data
-	wp_cache_delete( $post->ID, 'posts'     );
-	wp_cache_delete( $post->ID, 'post_meta' );
-
-	// Clean the term cache for the given post
-	clean_object_term_cache( $post->ID, $post->post_type );
-
-	// Bump the last_changed cache
-	wp_cache_set( 'last_changed', microtime(), 'bbpress_posts' );
 
 	/**
@@ -182,5 +160,9 @@
 	// Invalidate parent caches
 	if ( ! empty( $post->post_parent ) ) {
-		bbp_clean_post_cache( $post->post_parent );
+		clean_post_cache( $post->post_parent );
+
+	// Only bump `last_changed` when forum-root is reached
+	} else {
+		wp_cache_set( 'last_changed', microtime(), 'bbpress_posts' );
 	}
 }
Index: /trunk/src/includes/forums/functions.php
===================================================================
--- /trunk/src/includes/forums/functions.php	(revision 6584)
+++ /trunk/src/includes/forums/functions.php	(revision 6585)
@@ -833,5 +833,5 @@
 		$bbp_db->update( $bbp_db->posts, array( 'post_status' => bbp_get_public_status_id() ), array( 'ID' => $forum_id ) );
 		wp_transition_post_status( bbp_get_public_status_id(), $current_visibility, get_post( $forum_id ) );
-		bbp_clean_post_cache( $forum_id );
+		clean_post_cache( $forum_id );
 	}
 
@@ -882,5 +882,5 @@
 		$bbp_db->update( $bbp_db->posts, array( 'post_status' => bbp_get_private_status_id() ), array( 'ID' => $forum_id ) );
 		wp_transition_post_status( bbp_get_private_status_id(), $current_visibility, get_post( $forum_id ) );
-		bbp_clean_post_cache( $forum_id );
+		clean_post_cache( $forum_id );
 	}
 
@@ -931,5 +931,5 @@
 		$bbp_db->update( $bbp_db->posts, array( 'post_status' => bbp_get_hidden_status_id() ), array( 'ID' => $forum_id ) );
 		wp_transition_post_status( bbp_get_hidden_status_id(), $current_visibility, get_post( $forum_id ) );
-		bbp_clean_post_cache( $forum_id );
+		clean_post_cache( $forum_id );
 	}
 
Index: /trunk/src/includes/topics/functions.php
===================================================================
--- /trunk/src/includes/topics/functions.php	(revision 6584)
+++ /trunk/src/includes/topics/functions.php	(revision 6585)
@@ -911,6 +911,6 @@
 	// Clean old and new forum caches before proceeding, to ensure subsequent
 	// calls to forum objects are using updated data.
-	bbp_clean_post_cache( $old_forum_id );
-	bbp_clean_post_cache( $new_forum_id );
+	clean_post_cache( $old_forum_id );
+	clean_post_cache( $new_forum_id );
 
 	// Update topic forum's ID
Index: /trunk/tests/phpunit/testcases/admin/tools.php
===================================================================
--- /trunk/tests/phpunit/testcases/admin/tools.php	(revision 6584)
+++ /trunk/tests/phpunit/testcases/admin/tools.php	(revision 6585)
@@ -161,5 +161,5 @@
 		bbp_admin_repair_topic_voice_count();
 
-		bbp_clean_post_cache( $t );
+		clean_post_cache( $t );
 
 		$count = bbp_get_topic_voice_count( $t );
@@ -215,5 +215,5 @@
 		bbp_admin_repair_topic_hidden_reply_count();
 
-		bbp_clean_post_cache( $t );
+		clean_post_cache( $t );
 
 		$count = bbp_get_topic_reply_count_hidden( $t, true );
@@ -662,7 +662,7 @@
 		bbp_admin_repair_forum_meta();
 
-		bbp_clean_post_cache( $f );
-		bbp_clean_post_cache( $t );
-		bbp_clean_post_cache( $r );
+		clean_post_cache( $f );
+		clean_post_cache( $t );
+		clean_post_cache( $r );
 
 		// Forums should NOT have a _bbp_forum_id meta key
Index: /trunk/tests/phpunit/testcases/core/cache.php
===================================================================
--- /trunk/tests/phpunit/testcases/core/cache.php	(revision 6584)
+++ /trunk/tests/phpunit/testcases/core/cache.php	(revision 6585)
@@ -49,5 +49,5 @@
 
 		// Clean the cache.
-		bbp_clean_post_cache( $r );
+		clean_post_cache( $r );
 
 		// Setup
Index: /trunk/tests/phpunit/testcases/topics/functions/counts.php
===================================================================
--- /trunk/tests/phpunit/testcases/topics/functions/counts.php	(revision 6584)
+++ /trunk/tests/phpunit/testcases/topics/functions/counts.php	(revision 6585)
@@ -127,5 +127,5 @@
 
 		// ToDo: Update this to use bbp_delete_reply().
-		bbp_clean_post_cache( $t );
+		clean_post_cache( $t );
 		wp_delete_post( $r2, true );
 
