diff --git src/bp-xprofile/bp-xprofile-settings.php src/bp-xprofile/bp-xprofile-settings.php
index c5ade72..a626945 100644
--- src/bp-xprofile/bp-xprofile-settings.php
+++ src/bp-xprofile/bp-xprofile-settings.php
@@ -6,8 +6,6 @@
  * @since BuddyPress (2.0.0)
  *
  * @param array $args
- * 
- * 
  * @return array
  */
 function bp_xprofile_get_settings_fields( $args = '' ) {
@@ -51,3 +49,58 @@ function bp_xprofile_settings_add_feedback_message() {
 	bp_core_add_message( $message, $type );
 }
 add_action( 'bp_xprofile_settings_after_save', 'bp_xprofile_settings_add_feedback_message' );
+
+/**
+ * Records all profile field IDs on a user settings page.
+ *
+ * @since BuddyPress (2.1.0)
+ *
+ * @return object
+ */
+function bp_xprofile_settings_record_all_group_field_ids( $retval ) {
+	// make sure we're on the user settings page
+	if( ! bp_is_current_component( 'settings' ) && ! bp_is_current_action( 'profile' ) ) {
+		return $retval;
+	}
+
+	// make sure we are about to parse the profile loop
+	if ( ! did_action( 'bp_before_member_settings_template' ) ) {
+		return $retval;
+	}
+
+	// set our marker
+	if ( empty( buddypress()->profile->all_field_ids ) ) {
+		buddypress()->profile->all_field_ids = array();
+	}
+
+	// grab profile field ids
+	$field_ids = wp_list_pluck( $retval, 'id' );
+
+	// merge it with our field id marker
+	buddypress()->profile->all_field_ids = array_merge( buddypress()->profile->all_field_ids, $field_ids );
+
+	return $retval;
+}
+add_filter( 'xprofile_group_fields', 'bp_xprofile_settings_record_all_group_field_ids' );
+
+/**
+ * Filters the xprofile group field IDs function to return all field IDs.
+ *
+ * {@link bp_get_the_profile_group_field_ids()} only returns the field IDs from
+ * the current xprofile group and not all xprofile groups.
+ *
+ * We need to override this function to return all field IDs when on a user's
+ * "Settings > Profile" page.
+ *
+ * @since BuddyPress (2.1.0)
+ *
+ * @return string Comma-delimited list of all profile field IDs.
+ */
+function bp_xprofile_settings_group_field_ids( $retval ) {
+	if ( empty( buddypress()->profile->all_field_ids ) ) {
+		return $retval;
+	}
+
+	return implode( ',', wp_parse_id_list( buddypress()->profile->all_field_ids ) );
+}
+add_filter( 'bp_get_the_profile_group_field_ids', 'bp_xprofile_settings_group_field_ids' );
diff --git src/bp-xprofile/bp-xprofile-template.php src/bp-xprofile/bp-xprofile-template.php
index 1d69313..8a15ec3 100644
--- src/bp-xprofile/bp-xprofile-template.php
+++ src/bp-xprofile/bp-xprofile-template.php
@@ -296,7 +296,7 @@ function bp_the_profile_group_field_ids() {
 			}
 		}
 
-		return substr( $field_ids, 0, -1 );
+		return apply_filters( 'bp_get_the_profile_group_field_ids', substr( $field_ids, 0, -1 ) );
 	}
 
 function bp_profile_fields() {
