Index: bp-xprofile-functions.php
===================================================================
--- bp-xprofile-functions.php	(revision 7720)
+++ bp-xprofile-functions.php	(working copy)
@@ -712,19 +712,25 @@
 
 		// If the current user and displayed user are friends, show all
 		} elseif ( bp_is_active( 'friends' ) && friends_check_friendship( $displayed_user_id, $current_user_id ) ) {
-			$hidden_levels = array( 'adminsonly', );
+			$hidden_levels = array( 'onlyme' );
 
 		// current user is logged in but not friends, so exclude friends-only
 		} else {
-			$hidden_levels = array( 'friends', 'adminsonly', );
+			$hidden_levels = array( 'friends', 'onlyme' );
 		}
 
-	// Current user is not logged in, so exclude friends-only, loggedin, and adminsonly.
+		// current user is not an admin
+		if( !bp_current_user_can( 'bp_moderate' ) ){
+			$hidden_levels[] = 'adminsonly';
+		}
+
+	// Current user is not logged in, so exclude friends-only, loggedin, onlyme and adminsonly.
 	} else {
-		$hidden_levels = array( 'friends', 'loggedin', 'adminsonly', );
+		$hidden_levels = array( 'friends', 'loggedin', 'adminsonly', 'onlyme' );
 	}
 
-	return $hidden_levels;
+	// filter the visibility levels
+	return apply_filters( 'bp_xprofile_get_hidden_field_types_for_user', $hidden_levels, $displayed_user_id, $current_user_id );
 }
 
 /**
