diff --git bp-members/bp-members-functions.php bp-members/bp-members-functions.php
index a259d0a..72634cb 100644
--- bp-members/bp-members-functions.php
+++ bp-members/bp-members-functions.php
@@ -131,13 +131,18 @@ function bp_core_get_user_domain( $user_id, $user_nicename = false, $user_login
  *
  * @package BuddyPress Core
  * @param user_id The ID of the user.
+ * @param $skip_cache True if you want to skip the WP cache check
  * @uses BP_Core_User::get_core_userdata() Performs the query.
  */
-function bp_core_get_core_userdata( $user_id ) {
+function bp_core_get_core_userdata( $user_id, $skip_cache = false ) {
 	if ( empty( $user_id ) )
 		return false;
 
-	if ( !$userdata = wp_cache_get( 'bp_core_userdata_' . $user_id, 'bp' ) ) {
+	if ( !$skip_cache ) {
+		$userdata = wp_cache_get( 'bp_core_userdata_' . $user_id, 'bp' );
+	}
+
+	if ( !$userdata ) {
 		$userdata = BP_Core_User::get_core_userdata( $user_id );
 		wp_cache_set( 'bp_core_userdata_' . $user_id, $userdata, 'bp' );
 	}
diff --git bp-settings/bp-settings-actions.php bp-settings/bp-settings-actions.php
index 7b4756b..f26a01e 100644
--- bp-settings/bp-settings-actions.php
+++ bp-settings/bp-settings-actions.php
@@ -24,6 +24,12 @@ function bp_core_screen_general_settings() {
 		if ( is_super_admin() || ( !empty( $_POST['pwd'] ) && $_POST['pwd'] != '' && wp_check_password( $_POST['pwd'], $bp->displayed_user->userdata->user_pass, $bp->displayed_user->id ) ) ) {
 
 			$update_user = get_userdata( $bp->displayed_user->id );
+			
+			// The structure of the $update_user object changed in WP 3.3, but
+			// wp_update_user() still expects the old format
+			if ( isset( $update_user->data ) && is_object( $update_user->data ) ) {
+				$update_user = $update_user->data;
+			}
 
 			// Make sure changing an email address does not already exist
 			if ( $_POST['email'] != '' ) {
@@ -80,15 +86,9 @@ function bp_core_screen_general_settings() {
 				unset( $update_user->user_pass );
 			}
 
-			// The structure of the $update_user object changed in WP 3.3, but
-			// wp_update_user() still expects the old format
-			if ( isset( $update_user->data ) && is_object( $update_user->data ) ) {
-				$update_user = $update_user->data;
-			}
-
 			// Make sure these changes are in $bp for the current page load
 			if ( ( false === $email_error ) && ( false === $pass_error ) && ( wp_update_user( get_object_vars( $update_user ) ) ) ) {
-				$bp->displayed_user->userdata = bp_core_get_core_userdata( $bp->displayed_user->id );
+				$bp->displayed_user->userdata = bp_core_get_core_userdata( $bp->displayed_user->id, true );
 				$bp_settings_updated = true;
 			}
 
