Index: bp-xprofile/admin/js/admin.dev.js
===================================================================
--- bp-xprofile/admin/js/admin.dev.js	(revision 6178)
+++ bp-xprofile/admin/js/admin.dev.js	(working copy)
@@ -150,6 +150,32 @@
 	// Change cursor to move if JS is enabled
 	.css( 'cursor', 'move' );
 
+	// Allow reordering of field options
+	jQuery( '.options-box' ).sortable( {
+		cursor: 'move',
+		opacity: 0.3,
+		items: 'p.sortable',
+		tolerance: 'pointer',
+
+		update: function() {
+			jQuery.post( ajaxurl, {
+				action: 'xprofile_reorder_field_options',
+				'cookie': encodeURIComponent( document.cookie ),
+				'_wpnonce': jQuery( 'input#_wpnonce' ).val(),
+				'option_order': jQuery( this ).sortable( 'serialize' ) // because sortable's serialize method isn't working
+			},
+			function( response ) {
+				console.log(response);
+
+				// we need to reset the label counts
+				jQuery( '.sortable' ).each(function(i) {
+					jQuery(this).find('span').text('Option ' + ( i + 1 ) + ':');
+				});
+			});
+
+		}
+	}).disableSelection().css( 'cursor', 'move' );
+
 	// tabs init with a custom tab template and an "add" callback filling in the content
 	var $tab_items;
 	var $tabs = jQuery( '#tabs' ).tabs();
Index: bp-xprofile/bp-xprofile-admin.php
===================================================================
--- bp-xprofile/bp-xprofile-admin.php	(revision 6178)
+++ bp-xprofile/bp-xprofile-admin.php	(working copy)
@@ -352,6 +352,32 @@
 add_action( 'wp_ajax_xprofile_reorder_fields', 'xprofile_ajax_reorder_fields' );
 
 /**
+ * Handles the ajax reordering of options within a field
+ */
+function xprofile_ajax_reorder_field_options() {
+	global $wpdb, $bp;
+
+	// Check the nonce
+	// check_admin_referer( 'bp_reorder_field_options', '_wpnonce_reorder_field_options' );
+
+	if ( empty( $_POST['option_order'] ) )
+		return false;
+
+	parse_str( $_POST['option_order'], $order );
+
+	foreach ( (array) $order['option'] as $position => $option_id ) {
+		$wpdb->query(
+			$wpdb->prepare(
+				"UPDATE {$bp->profile->table_name_fields}
+				 SET option_order = $position
+				 WHERE id = $option_id"
+			)
+		);
+	}
+}
+add_action( 'wp_ajax_xprofile_reorder_field_options', 'xprofile_ajax_reorder_field_options' );
+
+/**
  * Handles the reordering of field groups
  */
 function xprofile_ajax_reorder_field_groups() {
Index: bp-xprofile/bp-xprofile-classes.php
===================================================================
--- bp-xprofile/bp-xprofile-classes.php	(revision 6178)
+++ bp-xprofile/bp-xprofile-classes.php	(working copy)
@@ -739,11 +739,11 @@
 
 			<div id="<?php echo $type; ?>" class="options-box" style="<?php echo $class; ?> margin-left: 15px;">
 				<h4><?php _e( 'Please enter options for this Field:', 'buddypress' ); ?></h4>
-				<p><label for="sort_order_<?php echo $type; ?>"><?php _e( 'Order By:', 'buddypress' ); ?></label>
+				<p><label for="sort_order_<?php echo $type; ?>"><?php _e( 'Sort Order:', 'buddypress' ); ?></label>
 					<select name="sort_order_<?php echo $type; ?>" id="sort_order_<?php echo $type; ?>" >
-						<option value="default" <?php if ( 'default' == $this->order_by ) {?> selected="selected"<?php } ?> ><?php _e( 'Order Entered', 'buddypress' ); ?></option>
-						<option value="asc" <?php if ( 'asc' == $this->order_by ) {?> selected="selected"<?php } ?>><?php _e( 'Name - Ascending', 'buddypress' ); ?></option>
-						<option value="desc" <?php if ( 'desc' == $this->order_by ) {?> selected="selected"<?php } ?>><?php _e( 'Name - Descending', 'buddypress' ); ?></option>
+						<option value="default" <?php if ( 'default' == $this->order_by ) {?> selected="selected"<?php } ?> ><?php _e( 'Custom', 'buddypress' ); ?></option>
+						<option value="asc" <?php if ( 'asc' == $this->order_by ) {?> selected="selected"<?php } ?>><?php _e( 'Ascending', 'buddypress' ); ?></option>
+						<option value="desc" <?php if ( 'desc' == $this->order_by ) {?> selected="selected"<?php } ?>><?php _e( 'Descending', 'buddypress' ); ?></option>
 					</select>
 
 				<?php if ( !$options = $this->get_children( true ) ) {
@@ -767,9 +767,10 @@
 						if ( 'multiselectbox' == $type || 'checkbox' == $type )
 							$default_name = '[' . $j . ']'; ?>
 
-						<p><?php _e( 'Option', 'buddypress' ); ?> <?php echo $j; ?>:
-						   <input type="text" name="<?php echo $type; ?>_option[<?php echo $j; ?>]" id="<?php echo $type; ?>_option<?php echo $j; ?>" value="<?php echo stripslashes( esc_attr( $options[$i]->name ) ); ?>" />
-						   <input type="<?php echo $default_input; ?>" name="isDefault_<?php echo $type; ?>_option<?php echo $default_name; ?>" <?php if ( (int) $options[$i]->is_default_option ) {?> checked="checked"<?php } ?> " value="<?php echo $j; ?>" /> <?php _e( 'Default Value', 'buddypress' ); ?>
+						<p class="sortable" id="option_<?php echo $options[$i]->id; ?>">
+							<span><?php _e( 'Option', 'buddypress' ); ?> <?php echo $j; ?>:</span>
+						  <input type="text" name="<?php echo $type; ?>_option[<?php echo $j; ?>]" id="<?php echo $type; ?>_option<?php echo $j; ?>" value="<?php echo stripslashes( esc_attr( $options[$i]->name ) ); ?>" />
+						  <input type="<?php echo $default_input; ?>" name="isDefault_<?php echo $type; ?>_option<?php echo $default_name; ?>" <?php if ( (int) $options[$i]->is_default_option ) {?> checked="checked"<?php } ?> " value="<?php echo $j; ?>" /> <?php _e( 'Default Value', 'buddypress' ); ?>
 
 							<?php if ( $j != 1 && $options[$i]->id != -1 ) : ?>
 
