Index: src/bp-blogs/bp-blogs-cache.php
===================================================================
--- src/bp-blogs/bp-blogs-cache.php
+++ src/bp-blogs/bp-blogs-cache.php
@@ -42,9 +42,10 @@
  * @param int $blog_id ID of the current blog.
  * @param int $user_id ID of the user whose blog cache should be cleared.
  */
-function bp_blogs_clear_blog_object_cache( $blog_id, $user_id ) {
+function bp_blogs_clear_blog_object_cache( $blog_id = 0, $user_id = 0 ) {
 	wp_cache_delete( 'bp_blogs_of_user_'        . $user_id, 'bp' );
 	wp_cache_delete( 'bp_total_blogs_for_user_' . $user_id, 'bp' );
+	wp_cache_delete( 'bp_total_blogs', 'bp' );
 }
 
 /**
@@ -52,17 +53,19 @@
  *
  * @since BuddyPress (1.0.0)
  *
+ * @deprecated BuddyPress (2.2.0) Use bp_blogs_clear_blog_object_cache() instead.
+ *
  * @param BP_Blogs_Blog $recorded_blog_obj The recorded blog, passed by
  *        'bp_blogs_new_blog'.
  */
 function bp_blogs_format_clear_blog_cache( $recorded_blog_obj ) {
 	bp_blogs_clear_blog_object_cache( false, $recorded_blog_obj->user_id );
-	wp_cache_delete( 'bp_total_blogs', 'bp' );
 }
 
 // List actions to clear object caches on
 add_action( 'bp_blogs_remove_blog_for_user', 'bp_blogs_clear_blog_object_cache', 10, 2 );
-add_action( 'bp_blogs_new_blog',             'bp_blogs_format_clear_blog_cache', 10, 2 );
+add_action( 'wpmu_new_blog',                 'bp_blogs_clear_blog_object_cache', 10, 2 );
+add_action( 'bp_blogs_remove_blog',          'bp_blogs_clear_blog_object_cache' );
 
 // List actions to clear super cached pages on, if super cache is installed
 add_action( 'bp_blogs_remove_data_for_blog', 'bp_core_clear_cache' );
Index: tests/phpunit/testcases/blogs/cache.php
===================================================================
--- tests/phpunit/testcases/blogs/cache.php
+++ tests/phpunit/testcases/blogs/cache.php
@@ -231,4 +231,38 @@
 
 		$this->set_current_user( $old_user );
 	}
+
+	/**
+	 * @group bp_blogs_total_blogs
+	 */
+	public function test_bp_blogs_total_blogs_count_after_delete_blog() {
+		if ( ! is_multisite() ) {
+			return;
+		}
+
+		$u = $this->factory->user->create();
+
+		// need to make sure we set the 'public' flag due to how BP_Blogs_Blogs:get_all() works
+		$b1 = $this->factory->blog->create( array(
+			'meta' => array(
+				'public' => 1
+			)
+		) );
+		$b2 = $this->factory->blog->create( array(
+			'meta' => array(
+				'public' => 1
+			)
+		) );
+
+		bp_blogs_record_blog( $b1, $u );
+		bp_blogs_record_blog( $b2, $u );
+
+		// prime total blog count
+		bp_blogs_total_blogs();
+
+		// delete a blog
+		wpmu_delete_blog( $b2 );
+
+		$this->assertEquals( 1, bp_blogs_total_blogs() );
+	}
 }
