diff --git a/core/misc/date.js b/core/misc/date.js
index 75f446b..4e5e901 100644
--- a/core/misc/date.js
+++ b/core/misc/date.js
@@ -16,37 +16,38 @@
      */
     attach: function (context, settings) {
       var $context = $(context);
-      // Only act if the browser doesn't support date input type.
-      if (Modernizr.inputtypes.date === false) {
-        $context.find('input[data-drupal-date-format]').each(function() {
-          var datepickerSettings = {}, dateFormat;
-          dateFormat = $(this).data('drupalDateFormat');
-          // The date format is saved in PHP style, we need to convert to jQery
-          // datepicker.
-          dateFormat = dateFormat
-            .replace('Y', 'yy')
-            .replace('m', 'mm')
-            .replace('d', 'dd');
-          datepickerSettings.dateFormat = dateFormat;
-          // Add min and max date if set on the input.
-          if ($(this).attr('min')) {
-            datepickerSettings.minDate = $(this).attr('min');
-          }
-          if ($(this).attr('max')) {
-            datepickerSettings.maxDate = $(this).attr('max');
-          }
-          $(this).datepicker(datepickerSettings);
-        });
+      // Skip if date are supported by the browser.
+      if (Modernizr.inputtypes.date === true) {
+        return;
       }
+      $context.find('input[data-drupal-date-format]').not('.hasDatepicker').each(function() {
+        var $input = $(this),
+            datepickerSettings = {},
+            dateFormat;
+        dateFormat = $(this).data('drupalDateFormat');
+        // The date format is saved in PHP style, we need to convert to jQuery
+        // datepicker.
+        dateFormat = dateFormat
+          .replace('Y', 'yy')
+          .replace('m', 'mm')
+          .replace('d', 'dd');
+        datepickerSettings.dateFormat = dateFormat;
+        // Add min and max date if set on the input.
+        if ($input.attr('min')) {
+          datepickerSettings.minDate = $input.attr('min');
+        }
+        if ($input.attr('max')) {
+          datepickerSettings.maxDate = $input.attr('max');
+        }
+        $input.datepicker(datepickerSettings);
+      });
     },
     /**
      * Detach the behavior destroying datepickers on effected elements.
      */
     detach: function (context, settings, trigger) {
       if (trigger === 'unload') {
-        $(context).find('input[data-drupal-date-format].hasDatepicker')
-          .datepicker("destroy")
-          .removeClass("hasDatepicker");
+        $(context).find('input[data-drupal-date-format].hasDatepicker').datepicker("destroy");
       }
     }
   };
