diff --git src/bp-blogs/bp-blogs-activity.php src/bp-blogs/bp-blogs-activity.php
index b3fe3ee..5c91e83 100644
--- src/bp-blogs/bp-blogs-activity.php
+++ src/bp-blogs/bp-blogs-activity.php
@@ -639,15 +639,25 @@ add_action( 'bp_blogs_new_blog', 'bp_blogs_record_activity_on_site_creation', 10
  *
  * @param int $blog_id Site ID.
  */
-function bp_blogs_delete_new_blog_activity_for_site( $blog_id ) {
-	bp_blogs_delete_activity( array(
+function bp_blogs_delete_new_blog_activity_for_site( $blog_id, $user_id = 0 ) {
+	$args = array(
 		'item_id'   => $blog_id,
 		'component' => buddypress()->blogs->id,
 		'type'      => 'new_blog'
-	) );
+	);
+
+	/**
+	 * In the case a user is removed, make sure he is the author of the 'new_blog' activity
+	 * when trying to delete it.
+	 */
+	if ( ! empty( $user_id ) ) {
+		$args['user_id'] = $user_id;
+	}
+
+	bp_blogs_delete_activity( $args );
 }
-add_action( 'bp_blogs_remove_blog',          'bp_blogs_delete_new_blog_activity_for_site' );
-add_action( 'bp_blogs_remove_blog_for_user', 'bp_blogs_delete_new_blog_activity_for_site' );
+add_action( 'bp_blogs_remove_blog',          'bp_blogs_delete_new_blog_activity_for_site', 10, 1 );
+add_action( 'bp_blogs_remove_blog_for_user', 'bp_blogs_delete_new_blog_activity_for_site', 10, 2 );
 
 /**
  * Delete all 'blogs' activity items for a site when the site is deleted.
diff --git src/bp-blogs/bp-blogs-functions.php src/bp-blogs/bp-blogs-functions.php
index 6fe24a6..a9895e7 100644
--- src/bp-blogs/bp-blogs-functions.php
+++ src/bp-blogs/bp-blogs-functions.php
@@ -920,19 +920,6 @@ function bp_blogs_remove_blog_for_user( $user_id, $blog_id ) {
 	BP_Blogs_Blog::delete_blog_for_user( $blog_id, $user_id );
 
 	/**
-	 * Delete activity stream item only if the Activity component is active
-	 *
-	 * @see https://buddypress.trac.wordpress.org/ticket/6937
-	 */
-	if ( bp_is_active( 'activity' ) ) {
-		bp_blogs_delete_activity( array(
-			'item_id'   => $blog_id,
-			'component' => buddypress()->blogs->id,
-			'type'      => 'new_blog'
-		) );
-	}
-
-	/**
 	 * Fires after a blog has been removed from the tracker for a specific user.
 	 *
 	 * @since 1.0.0
diff --git tests/phpunit/testcases/blogs/functions.php tests/phpunit/testcases/blogs/functions.php
index dcbed4c..25b3cab 100644
--- tests/phpunit/testcases/blogs/functions.php
+++ tests/phpunit/testcases/blogs/functions.php
@@ -1016,6 +1016,100 @@ class BP_Tests_Blogs_Functions extends BP_UnitTestCase {
 		$this->set_current_user( $old_user );
 	}
 
+	/**
+	 * @group bp_blogs_remove_blog
+	 */
+	public function test_bp_blogs_remove_blog() {
+		if ( ! is_multisite() ) {
+			return;
+		}
+
+		$reset_post = $_POST;
+		$old_user = get_current_user_id();
+
+		// Simulate a new "BuddyPress generated" blog
+		$_POST['blog_public'] = 1;
+
+		$u = $this->factory->user->create();
+		$this->set_current_user( $u );
+
+		// Create three sites.
+		$b = $this->factory->blog->create( array(
+			'user_id' => $u
+		) );
+
+		$activity = bp_activity_get( array(
+			'filter' => array(
+				'object'     => 'blogs',
+				'action'     => 'new_blog',
+				'primary_id' => $b,
+			),
+		) );
+
+		$new_blog = array_map( 'intval', wp_list_pluck( $activity['activities'], 'item_id', 'id' ) );
+		$this->assertSame( $b, reset( $new_blog ) );
+
+		// Removing the blog should delete the activity and the blog association.
+		wpmu_delete_blog( $b );
+
+		$deleted = bp_activity_get( array(
+			'in' => array_keys( $new_blog ),
+		) );
+
+		$this->assertEmpty( $deleted['activities'] );
+		$this->assertEmpty( BP_Blogs_Blog::is_recorded( $b ) );
+
+		$_POST = $reset_post;
+		$this->set_current_user( $old_user );
+	}
+
+	/**
+	 * @group bp_blogs_remove_blog_for_user
+	 */
+	public function test_bp_blogs_remove_blog_for_user_is_contributor() {
+		if ( ! is_multisite() ) {
+			return;
+		}
+
+		$reset_post = $_POST;
+		$old_user = get_current_user_id();
+
+		// Simulate a new "BuddyPress generated" blog
+		$_POST['blog_public'] = 1;
+
+		$u = $this->factory->user->create();
+		$this->set_current_user( $u );
+
+		// Create three sites.
+		$b = $this->factory->blog->create( array(
+			'user_id' => $u
+		) );
+
+		$u2 = $this->factory->user->create();
+		add_user_to_blog( $b, $u2, 'contributor' );
+
+		$u2_blogs = BP_Blogs_Blog::get_blog_ids_for_user( $u2 );
+		$this->assertContains( $b, $u2_blogs, 'The user should be associated to the blog as he is a contributor' );
+
+		remove_user_from_blog( $u2, $b );
+		$u2_blogs = BP_Blogs_Blog::get_blog_ids_for_user( $u2 );
+		$this->assertNotContains( $b, $u2_blogs, 'The user should not be associated anymore to the blog' );
+
+		$activity = bp_activity_get( array(
+			'filter' => array(
+				'object'     => 'blogs',
+				'action'     => 'new_blog',
+				'primary_id' => $b,
+			),
+		) );
+
+		$new_blog = array_map( 'intval', wp_list_pluck( $activity['activities'], 'item_id', 'id' ) );
+		$this->assertSame( $b, reset( $new_blog ), 'The new_blog activity should not be deleted when a contributor is removed from the blog.' );
+
+		$_POST = $reset_post;
+		$this->set_current_user( $old_user );
+	}
+
 	protected function activity_exists_for_post( $post_id ) {
 		$a = bp_activity_get( array(
 			'component' => buddypress()->blogs->id,
