diff --git a/components/date.inc b/components/date.inc
index cf7150ac..692d0443 100644
--- a/components/date.inc
+++ b/components/date.inc
@@ -22,6 +22,7 @@ function _webform_defaults_date() {
       'start_date' => '-2 years',
       'end_date' => '+2 years',
       'year_textfield' => 0,
+      'year_rangereverse' => 0,
       'datepicker' => 1,
       'title_display' => 0,
       'description' => '',
@@ -107,6 +108,15 @@ function _webform_edit_date($component) {
     '#parents' => array('extra', 'year_textfield'),
   );
 
+  $form['display']['year_rangereverse'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Date year range reverse'),
+    '#default_value' => $component['extra']['year_rangereverse'],
+    '#description' => t('If checked, date year will be listed from max to min.'),
+    '#weight' => 5,
+    '#parents' => array('extra', 'year_rangereverse'),
+  );
+
   $form['validation']['start_date'] = array(
     '#type' => 'textfield',
     '#title' => t('Start date'),
@@ -180,6 +190,7 @@ function _webform_render_date($component, $value = NULL, $filter = TRUE, $submis
     '#end_date' => trim($component['extra']['end_date']),
     '#reference_timestamp' => $submission && $submission->completed ? $submission->completed : NULL,
     '#year_textfield' => $component['extra']['year_textfield'],
+    '#year_rangereverse' => $component['extra']['year_rangereverse'],
     '#default_value' => $filter ? webform_replace_tokens($component['value'], $node) : $component['value'],
     '#timezone' => $component['extra']['timezone'],
     '#exclude' => $component['extra']['exclude'],
@@ -348,6 +359,11 @@ function webform_expand_date($element) {
   }
   elseif ($element['#start_date'] || $element['#end_date']) {
     $element['year']['#options'] = array('' => t('Year')) + drupal_map_assoc(range($range['start']['year'], $range['end']['year']));
+    // Reverse year.
+    if ($element['#year_rangereverse']) {
+      $options = $element['year']['#options'];
+      $element['year']['#options'] = ['' => $options['']] + array_reverse($options, TRUE);
+    }
   }
 
   return $element;
diff --git a/tests/WebformTestCase.test b/tests/WebformTestCase.test
index caf662b5..936b6a3a 100644
--- a/tests/WebformTestCase.test
+++ b/tests/WebformTestCase.test
@@ -560,6 +560,7 @@ class WebformTestCase extends DrupalWebTestCase {
             'start_date' => '-100 years',
             'end_date' => '+2 years',
             'year_textfield' => 1,
+            'year_rangereverse' => 1,
           ),
           'required' => '1',
           'pid' => '0',
