Index: bp-xprofile/bp-xprofile-template.php
===================================================================
--- bp-xprofile/bp-xprofile-template.php	(revision 4396)
+++ bp-xprofile/bp-xprofile-template.php	(working copy)
@@ -407,7 +407,7 @@
 			$field = new BP_XProfile_Field( $field->id );
 
 		$options = $field->get_children();
-
+             
 		// Setup some defaults
 		$html     = '';
 		$selected = '';
@@ -417,33 +417,27 @@
 			case 'selectbox': case 'multiselectbox':
 				if ( 'multiselectbox' != $field->type )
 					$html .= '<option value="">--------</option>';
-
+                               //find the values selected by user 
+                                $user_selected_values = maybe_unserialize( BP_XProfile_ProfileData::get_value_byid( $field->id ) );
+					
 				for ( $k = 0; $k < count($options); $k++ ) {
-					$original_option_values = maybe_unserialize( BP_XProfile_ProfileData::get_value_byid( $options[$k]->parent_id ) );
-					$option_values = (array) $original_option_values;
+					$option_values = (array) $user_selected_values;
 
-					// Check for updated posted values, but errors preventing them from being saved first time
-					foreach( $option_values as $i => $option_value ) {
-						if ( isset( $_POST['field_' . $field->id] ) && $_POST['field_' . $field->id] != $option_value ) {
-							if ( !empty( $_POST['field_' . $field->id] ) )
-								$option_values[$i] = $_POST['field_' . $field->id];
-						}
-					}
-
+					
 					$selected = '';
 					
 					// Run the allowed option name through the before_save
 					// filter, so we'll be sure to get a match
-					$allowed_options = xprofile_sanitize_data_value_before_save( $options[$k]->name, false, false );
+					$current_option = xprofile_sanitize_data_value_before_save( $options[$k]->name, false, false );
 					
 					// First, check to see whether the user-entered value
 					// matches
-					if ( in_array( $allowed_options, (array) $option_values ) )
+					if ( in_array( $current_option,  $option_values ) )
 						$selected = ' selected="selected"';
 
 					// Then, if the user has not provided a value, check for
 					// defaults
-					if ( !is_array( $original_option_values ) && empty( $option_values ) & $options[$k]->is_default_option )
+					if ( !is_array( $user_selected_values ) && empty( $user_selected_values ) & $options[$k]->is_default_option )
 						$selected = ' selected="selected"';
 
 					$html .= apply_filters( 'bp_get_the_profile_field_options_select', '<option' . $selected . ' value="' . esc_attr( stripslashes( $options[$k]->name ) ) . '">' . esc_attr( stripslashes( $options[$k]->name ) ) . '</option>', $options[$k] );
