Index: bp-members/bp-members-functions.php
--- bp-members/bp-members-functions.php Base (BASE)
+++ bp-members/bp-members-functions.php Locally Modified (Based On LOCAL)
@@ -131,17 +131,30 @@
  *
  * @package BuddyPress Core
  * @param user_id The ID of the user.
+ * @param $use_cache False 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 = 0, $use_cache = true ) {
+
+	// Sanity check incase $user_id passed cannot be trusted
 	if ( empty( $user_id ) )
 		return false;
 
-	if ( !$userdata = wp_cache_get( 'bp_core_userdata_' . $user_id, 'bp' ) ) {
+	// Prevent possible debug notice
+	$userdata = false;
+
+	// Only skip cache if explicitly false
+	if ( true === $use_cache )
+		$userdata = wp_cache_get( 'bp_core_userdata_' . $user_id, 'bp' );
+
+	// Manually load userdata from the DB if it's missing
+	if ( empty( $userdata ) ) {
 		$userdata = BP_Core_User::get_core_userdata( $user_id );
 		wp_cache_set( 'bp_core_userdata_' . $user_id, $userdata, 'bp' );
 	}
-	return apply_filters( 'bp_core_get_core_userdata', $userdata );
+
+	// Filter and return the userdata
+	return apply_filters( 'bp_core_get_core_userdata', $userdata, $user_id, $use_cache );
 }
 
 /**
Index: bp-settings/bp-settings-actions.php
--- bp-settings/bp-settings-actions.php Base (BASE)
+++ bp-settings/bp-settings-actions.php Locally Modified (Based On LOCAL)
@@ -24,6 +24,12 @@
 		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,16 +86,13 @@
 				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_settings_updated = true;
+
+				// Note that bp_core_get_core_userdata $skip_cache is true here
+				// to prevent displaying cached values on page reload
+				$bp->displayed_user->userdata = bp_core_get_core_userdata( $bp->displayed_user->id, true );
+				$bp_settings_updated          = true;
 			}
 
 		// Password Error
