diff --git a/components/select.inc b/components/select.inc
index 6a74a74..71d1a7a 100644
--- a/components/select.inc
+++ b/components/select.inc
@@ -463,6 +463,7 @@ function webform_expand_select_ids($element) {
  * Implements _webform_display_component().
  */
 function _webform_display_select($component, $value, $format = 'html') {
+  $options = _webform_select_options($component, !$component['extra']['aslist']);
   return array(
     '#title' => $component['name'],
     '#title_display' => $component['extra']['title_display'] ? $component['extra']['title_display'] : 'before',
@@ -471,13 +472,39 @@ function _webform_display_select($component, $value, $format = 'html') {
     '#theme' => 'webform_display_select',
     '#theme_wrappers' => $format == 'html' ? array('webform_element') : array('webform_element_text'),
     '#format' => $format,
-    '#options' => _webform_select_options($component, !$component['extra']['aslist']),
-    '#value' => (array) $value,
+    '#options' => $options,
+    '#value' => _webform_order_select_values($options, $value),
     '#translatable' => array('title', 'options'),
   );
 }
 
 /**
+ * Orders the submitted values according to the order in the component
+ * configuration.
+ */
+function _webform_order_select_values($component_options, $submitted_values) {
+  if (!is_array($submitted_values)) {
+    $submitted_values = (array) $submitted_values;
+  }
+
+  // Include the values that exist in the component configuration in the right order.
+  $values = array_filter(array_keys($component_options), function($option) use ($submitted_values) {
+    if (in_array($option, $submitted_values)) {
+      return TRUE;
+    }
+  });
+
+  // If the component configuration does not contain values that were submitted
+  // due changes made after submission, include them as well at the end.
+  $left_overs = array_diff($submitted_values, array_keys($component_options));
+  if (!empty($left_overs)) {
+    $values = array_merge($values, $left_overs);
+  }
+
+  return $values;
+}
+
+/**
  * Implements _webform_submit_component().
  *
  * Handle select or other... modifications and convert FAPI 0/1 values into
