diff --git a/includes/date.inc b/includes/date.inc
index 01ab131..9e68fee 100644
--- a/includes/date.inc
+++ b/includes/date.inc
@@ -14,11 +14,6 @@ function system_default_date_formats() {
   // Short date formats.
   $formats[] = array(
     'type' => 'short',
-    'format' => 'Y-m-d H:i',
-    'locales' => array(),
-  );
-  $formats[] = array(
-    'type' => 'short',
     'format' => 'm/d/Y - H:i',
     'locales' => array('en-us'),
   );
@@ -39,6 +34,11 @@ function system_default_date_formats() {
   );
   $formats[] = array(
     'type' => 'short',
+    'format' => 'Y-m-d H:i',
+    'locales' => array(),
+  );
+  $formats[] = array(
+    'type' => 'short',
     'format' => 'm/d/Y - g:ia',
     'locales' => array(),
   );
@@ -86,11 +86,6 @@ function system_default_date_formats() {
   // Medium date formats.
   $formats[] = array(
     'type' => 'medium',
-    'format' => 'D, Y-m-d H:i',
-    'locales' => array(),
-  );
-  $formats[] = array(
-    'type' => 'medium',
     'format' => 'D, m/d/Y - H:i',
     'locales' => array('en-us'),
   );
@@ -106,6 +101,11 @@ function system_default_date_formats() {
   );
   $formats[] = array(
     'type' => 'medium',
+    'format' => 'D, Y-m-d H:i',
+    'locales' => array(),
+  );
+  $formats[] = array(
+    'type' => 'medium',
     'format' => 'F j, Y - H:i',
     'locales' => array(),
   );
diff --git a/modules/system/system.test b/modules/system/system.test
index ec71093..16f05de 100644
--- a/modules/system/system.test
+++ b/modules/system/system.test
@@ -1275,6 +1275,43 @@ class DateTimeFunctionalTest extends DrupalWebTestCase {
 
 
   /**
+   * Test the default date type formats are consistent.
+   */
+  function testDefaultDateFormats() {
+    // These are the default format values from format_date().
+    $default_formats = array(
+      'short' => 'm/d/Y - H:i',
+      'medium' => 'D, m/d/Y - H:i',
+      'long' => 'l, F j, Y - H:i',
+    );
+
+    // Clear the date format variables.
+    variable_del('date_format_short');
+    variable_del('date_format_medium');
+    variable_del('date_format_long');
+
+    $this->drupalGet('admin/config/regional/date-time');
+
+    foreach ($default_formats as $format_name => $format_value) {
+      // Check that the configuration fields match the default format.
+      $this->assertFieldByName('date_format_' . $format_name, $format_value, t('The @type format type matches the expected format @format', array(
+        '@type' => $format_name,
+        '@format' => $format_value,
+      )));
+
+      // Check that format_date is using the default format.
+      $expected_date = format_date(REQUEST_TIME, $format_name);
+      $actual_date = format_date(REQUEST_TIME, 'custom', $format_value);
+      // Check that the formatted date string matches the expected default.
+      $this->assertEqual($expected_date, $actual_date, t('The expected @type value @expected matches the actual value @actual', array(
+        '@type' => $format_name,
+        '@expected' => $expected_date,
+        '@actual' => $actual_date,
+      )));
+    }
+  }
+
+  /**
    * Test time zones and DST handling.
    */
   function testTimeZoneHandling() {
