Index: src/bp-members/bp-members-functions.php
===================================================================
--- src/bp-members/bp-members-functions.php
+++ src/bp-members/bp-members-functions.php
@@ -2007,9 +2007,6 @@
 
 			bp_delete_user_meta( $user_id, 'activation_key' );
 
-			$member = get_userdata( $user_id );
-			$member->set_role( get_option('default_role') );
-
 			$user_already_created = true;
 
 		} else {
@@ -2124,6 +2121,32 @@
 }
 
 /**
+ * Add default WordPress role for new signups on the BP root blog.
+ *
+ * @since 3.0.0
+ *
+ * @param int $user_id The user ID to add the default role for.
+ */
+function bp_members_add_role_after_activation( $user_id ) {
+	if ( ! is_numeric( $user_id ) ) {
+		return;
+	}
+
+	$is_root_blog = bp_is_root_blog();
+	if ( ! $is_root_blog ) {
+		switch_to_blog( bp_get_root_blog_id() );
+	}
+
+	$member = get_userdata( $user_id );
+	$member->set_role( get_option( 'default_role' ) );
+
+	if ( ! $is_root_blog ) {
+		restore_current_blog();
+	}
+}
+add_action( 'bp_core_activated_user', 'bp_members_add_role_after_activation', 1 );
+
+/**
  * Migrate signups from pre-2.0 configuration to wp_signups.
  *
  * @since 2.0.1
Index: tests/phpunit/testcases/members/functions.php
===================================================================
--- tests/phpunit/testcases/members/functions.php
+++ tests/phpunit/testcases/members/functions.php
@@ -637,4 +637,29 @@
 
 		$wpdb->suppress_errors( $suppress );
 	}
+
+	/**
+	 * @group bp_core_activate_signup
+	 */
+	public function test_bp_core_activate_signup_should_add_user_role() {
+		$key = 'test';
+
+		// Create the signup.
+		$this->factory->signup->create( array(
+			'user_login'     => 'test',
+			'user_email'     => 'test@example.com',
+			'activation_key' => $key,
+			'meta' => array(
+				'field_1' => 'Foo Bar',
+				'password' => 'foobar',
+			),
+		) );
+
+		// Activate user.
+		$user_id = bp_core_activate_signup( $key );
+
+		// Assert that user has a role.
+		$user = get_userdata( $user_id );
+		$this->assertNotEmpty( $user->roles );
+	}
 }
