diff --git src/bp-core/bp-core-update.php src/bp-core/bp-core-update.php
index eda45ead0..eedf3a1f3 100644
--- src/bp-core/bp-core-update.php
+++ src/bp-core/bp-core-update.php
@@ -273,6 +273,11 @@ function bp_version_updater() {
 		if ( $raw_db_version < 12385 ) {
 			bp_update_to_5_0();
 		}
+
+		// Version 8.0.0.
+		if ( $raw_db_version < 12836 ) {
+			bp_update_to_8_0();
+		}
 	}
 
 	/* All done! *************************************************************/
@@ -589,6 +594,35 @@ function bp_update_to_5_0() {
 	}
 }
 
+/**
+ * 8.0.0 update routine.
+ *
+ * - Edit the `new_avatar` activity type's component to `members`.
+ *
+ * @since 8.0.0
+ */
+function bp_update_to_8_0() {
+	global $wpdb;
+	$bp_prefix = bp_core_get_table_prefix();
+
+	// Update the `new_avatar` activity type's component to `members`.
+	$wpdb->update(
+		$bp_prefix . 'bp_activity',
+		array(
+			'component' => 'members',
+		),
+		array(
+			'type' => 'new_avatar',
+		),
+		array(
+			'%s',
+		),
+		array(
+			'%s',
+		)
+	);
+}
+
 /**
  * Updates the component field for new_members type.
  *
diff --git src/bp-core/deprecated/8.0.php src/bp-core/deprecated/8.0.php
new file mode 100644
index 000000000..acee31af0
--- /dev/null
+++ src/bp-core/deprecated/8.0.php
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * Deprecated functions.
+ *
+ * @deprecated 8.0.0
+ */
+
+// Exit if accessed directly.
+defined( 'ABSPATH' ) || exit;
+
+/**
+ * Format 'new_avatar' activity actions.
+ *
+ * @since 2.0.0
+ * @deprecated 8.0.0
+ *
+ * @param string $action   Static activity action.
+ * @param object $activity Activity object.
+ * @return string
+ */
+function bp_xprofile_format_activity_action_new_avatar( $action, $activity ) {
+	_deprecated_function( __FUNCTION__, '8.0.0', 'bp_members_format_activity_action_new_avatar()' );
+	return bp_members_format_activity_action_new_avatar( $action, $activity );
+}
+
+/**
+ * Adds an activity stream item when a user has uploaded a new avatar.
+ *
+ * @since 1.0.0
+ * @since 2.3.4 Add new parameter to get the user id the avatar was set for.
+ * @deprecated 8.0.0
+ *
+ * @param int $user_id The user id the avatar was set for.
+ * @return bool
+ */
+function bp_xprofile_new_avatar_activity( $user_id = 0 ) {
+	_deprecated_function( __FUNCTION__, '8.0.0', 'bp_members_new_avatar_activity()' );
+	return bp_members_new_avatar_activity( $user_id );
+}
diff --git src/bp-members/bp-members-activity.php src/bp-members/bp-members-activity.php
index 30775dd6d..8907d0a7e 100644
--- src/bp-members/bp-members-activity.php
+++ src/bp-members/bp-members-activity.php
@@ -27,6 +27,16 @@ function bp_members_register_activity_actions() {
 		array( 'activity' )
 	);
 
+	// Register the activity stream actions for this component.
+	bp_activity_set_action(
+		// Older avatar activity items use 'profile' for component. See r4273.
+		buddypress()->members->id,
+		'new_avatar',
+		__( 'Member changed profile picture', 'buddypress' ),
+		'bp_members_format_activity_action_new_avatar',
+		__( 'Updated Profile Photos', 'buddypress' )
+	);
+
 	/**
 	 * Fires after the default 'new member' activity types are registered.
 	 *
@@ -67,6 +77,40 @@ function bp_members_format_activity_action_new_member( $action, $activity ) {
 	return apply_filters( 'bp_members_format_activity_action_new_member', $action, $activity );
 }
 
+/**
+ * Format 'new_avatar' activity actions.
+ *
+ * @since 8.0.0
+ *
+ * @param string $action   Static activity action.
+ * @param object $activity Activity object.
+ * @return string
+ */
+function bp_members_format_activity_action_new_avatar( $action, $activity ) {
+	$userlink = bp_core_get_userlink( $activity->user_id );
+
+	/* translators: %s: user link */
+	$action = sprintf( esc_html__( '%s changed their profile picture', 'buddypress' ), $userlink );
+
+	// Legacy filter - pass $user_id instead of $activity.
+	if ( has_filter( 'bp_xprofile_new_avatar_action' ) ) {
+		$action = apply_filters( 'bp_xprofile_new_avatar_action', $action, $activity->user_id );
+	}
+
+	/** This filter is documented in wp-includes/deprecated.php */
+	$action = apply_filters_deprecated( 'bp_xprofile_format_activity_action_new_avatar', array( $action, $activity ), '8.0.0', 'bp_members_format_activity_action_new_avatar' );
+
+	/**
+	 * Filters the formatted 'new_avatar' activity stream action.
+	 *
+	 * @since 8.0.0
+	 *
+	 * @param string $action   Formatted action for activity stream.
+	 * @param object $activity Activity object.
+	 */
+	return apply_filters( 'bp_members_format_activity_action_new_avatar', $action, $activity );
+}
+
 /**
  * Create a "became a registered user" activity item when a user activates his account.
  *
@@ -97,3 +141,42 @@ function bp_core_new_user_activity( $user ) {
 	) );
 }
 add_action( 'bp_core_activated_user', 'bp_core_new_user_activity' );
+
+/**
+ * Adds an activity stream item when a user has uploaded a new avatar.
+ *
+ * @since 8.0.0
+ *
+ * @param int $user_id The user id the avatar was set for.
+ */
+function bp_members_new_avatar_activity( $user_id = 0 ) {
+
+	// Bail if activity component is not active.
+	if ( ! bp_is_active( 'activity' ) ) {
+		return false;
+	}
+
+	if ( empty( $user_id ) ) {
+		$user_id = bp_displayed_user_id();
+	}
+
+	/** This filter is documented in wp-includes/deprecated.php */
+	$user_id = apply_filters_deprecated( 'bp_xprofile_new_avatar_user_id', array( $user_id ), '8.0.0', 'bp_members_new_avatar_user_id' );
+
+	/**
+	 * Filters the user ID when a user has uploaded a new avatar.
+	 *
+	 * @since 8.0.0
+	 *
+	 * @param int $user_id ID of the user the avatar was set for.
+	 */
+	$user_id = apply_filters( 'bp_members_new_avatar_user_id', $user_id );
+
+	// Add the activity.
+	bp_activity_add( array(
+		'user_id'   => $user_id,
+		'component' => buddypress()->members->id,
+		'type'      => 'new_avatar'
+	) );
+}
+add_action( 'bp_members_avatar_uploaded', 'bp_members_new_avatar_activity' );
diff --git src/bp-xprofile/bp-xprofile-activity.php src/bp-xprofile/bp-xprofile-activity.php
index 1adfae605..1e007dde4 100644
--- src/bp-xprofile/bp-xprofile-activity.php
+++ src/bp-xprofile/bp-xprofile-activity.php
@@ -21,16 +21,6 @@ defined( 'ABSPATH' ) || exit;
  */
 function xprofile_register_activity_actions() {
 
-	// Register the activity stream actions for this component.
-	bp_activity_set_action(
-		// Older avatar activity items use 'profile' for component. See r4273.
-		'profile',
-		'new_avatar',
-		__( 'Member changed profile picture', 'buddypress' ),
-		'bp_xprofile_format_activity_action_new_avatar',
-		__( 'Updated Profile Photos', 'buddypress' )
-	);
-
 	bp_activity_set_action(
 		buddypress()->profile->id,
 		'updated_profile',
@@ -49,37 +39,6 @@ function xprofile_register_activity_actions() {
 }
 add_action( 'bp_register_activity_actions', 'xprofile_register_activity_actions' );
 
-/**
- * Format 'new_avatar' activity actions.
- *
- * @since 2.0.0
- *
- * @param string $action   Static activity action.
- * @param object $activity Activity object.
- * @return string
- */
-function bp_xprofile_format_activity_action_new_avatar( $action, $activity ) {
-	$userlink = bp_core_get_userlink( $activity->user_id );
-
-	/* translators: %s: user link */
-	$action = sprintf( esc_html__( '%s changed their profile picture', 'buddypress' ), $userlink );
-
-	// Legacy filter - pass $user_id instead of $activity.
-	if ( has_filter( 'bp_xprofile_new_avatar_action' ) ) {
-		$action = apply_filters( 'bp_xprofile_new_avatar_action', $action, $activity->user_id );
-	}
-
-	/**
-	 * Filters the formatted 'new_avatar' activity stream action.
-	 *
-	 * @since 2.0.0
-	 *
-	 * @param string $action   Formatted action for activity stream.
-	 * @param object $activity Activity object.
-	 */
-	return apply_filters( 'bp_xprofile_format_activity_action_new_avatar', $action, $activity );
-}
-
 /**
  * Format 'updated_profile' activity actions.
  *
@@ -199,46 +158,6 @@ function xprofile_register_activity_action( $key, $value ) {
 	return apply_filters( 'xprofile_register_activity_action', bp_activity_set_action( buddypress()->profile->id, $key, $value ), $key, $value );
 }
 
-/**
- * Adds an activity stream item when a user has uploaded a new avatar.
- *
- * @since 1.0.0
- * @since 2.3.4 Add new parameter to get the user id the avatar was set for.
- *
- *                         specific activity
- *
- * @param int $user_id The user id the avatar was set for.
- * @return bool
- */
-function bp_xprofile_new_avatar_activity( $user_id = 0 ) {
-
-	// Bail if activity component is not active.
-	if ( ! bp_is_active( 'activity' ) ) {
-		return false;
-	}
-
-	if ( empty( $user_id ) ) {
-		$user_id = bp_displayed_user_id();
-	}
-
-	/**
-	 * Filters the user ID when a user has uploaded a new avatar.
-	 *
-	 * @since 1.5.0
-	 *
-	 * @param int $user_id ID of the user the avatar was set for.
-	 */
-	$user_id = apply_filters( 'bp_xprofile_new_avatar_user_id', $user_id );
-
-	// Add the activity.
-	bp_activity_add( array(
-		'user_id'   => $user_id,
-		'component' => 'profile',
-		'type'      => 'new_avatar'
-	) );
-}
-add_action( 'bp_members_avatar_uploaded', 'bp_xprofile_new_avatar_activity' );
-
 /**
  * Add an activity item when a user has updated his profile.
  *
diff --git src/class-buddypress.php src/class-buddypress.php
index aad6f163b..6d93bc2e4 100644
--- src/class-buddypress.php
+++ src/class-buddypress.php
@@ -304,7 +304,7 @@ class BuddyPress {
 		/** Versions **********************************************************/
 
 		$this->version    = '8.0.0-alpha';
-		$this->db_version = 12385;
+		$this->db_version = 12836;
 
 		/** Loading ***********************************************************/
 
diff --git tests/phpunit/testcases/members/activity.php tests/phpunit/testcases/members/activity.php
index a4a48e395..07ec30406 100644
--- tests/phpunit/testcases/members/activity.php
+++ tests/phpunit/testcases/members/activity.php
@@ -25,6 +25,25 @@ class BP_Tests_Members_Activity extends BP_UnitTestCase {
 		$this->assertSame( $expected, $a_obj->action );
 	}
 
+	/**
+	 * @group activity_action
+	 * @group bp_members_format_activity_action_new_avatar
+	 */
+	public function test_bp_members_format_activity_action_new_avatar() {
+		$u = self::factory()->user->create();
+		$a = self::factory()->activity->create( array(
+			'component' => 'members',
+			'type' => 'new_avatar',
+			'user_id' => $u,
+		) );
+
+		$expected = sprintf( __( '%s changed their profile picture', 'buddypress' ), bp_core_get_userlink( $u ) );
+
+		$a_obj = new BP_Activity_Activity( $a );
+
+		$this->assertSame( $expected, $a_obj->action );
+	}
+
 	/**
 	 * @group bp_migrate_new_member_activity_component
 	 */
diff --git tests/phpunit/testcases/xprofile/activity.php tests/phpunit/testcases/xprofile/activity.php
index 7a1b42db2..ee0e5e9cb 100644
--- tests/phpunit/testcases/xprofile/activity.php
+++ tests/phpunit/testcases/xprofile/activity.php
@@ -294,25 +294,6 @@ class BP_Tests_XProfile_Activity extends BP_UnitTestCase {
 		$this->assertTrue( bp_xprofile_updated_profile_activity( $d['u'], array( $d['f'] ), false, $old_values, $new_values ) );
 	}
 
-	/**
-	 * @group activity_action
-	 * @group bp_xprofile_format_activity_action_new_avatar
-	 */
-	public function test_bp_xprofile_format_activity_action_new_avatar() {
-		$u = self::factory()->user->create();
-		$a = self::factory()->activity->create( array(
-			'component' => 'profile',
-			'type' => 'new_avatar',
-			'user_id' => $u,
-		) );
-
-		$expected = sprintf( __( '%s changed their profile picture', 'buddypress' ), bp_core_get_userlink( $u ) );
-
-		$a_obj = new BP_Activity_Activity( $a );
-
-		$this->assertSame( $expected, $a_obj->action );
-	}
-
 	/**
 	 * @group activity_action
 	 * @group bp_xprofile_format_activity_action_updated_profile
