diff --git a/date.field.inc b/date.field.inc
index 7acd7ef..2adcef4 100644
--- a/date.field.inc
+++ b/date.field.inc
@@ -161,7 +161,7 @@ function date_field_formatter_view($entity_type, $entity, $field, $instance, $la
  */
 function date_field_is_empty($item, $field) {
   // Sometimes a $item is a date object.
-  // Coming from repeating dates. Why?? 
+  // Coming from repeating dates. Why??
   if (!is_array($item)) {
     return FALSE;
   }
@@ -225,6 +225,7 @@ function date_field_widget_info() {
   $settings = array(
     'settings' => array(
       'input_format' => date_default_format('date_select'),
+      'display_all_day' => 0,
       'input_format_custom' => '',
       'increment' => 15,
       'text_parts' => array(),
@@ -309,8 +310,8 @@ function date_field_validate($entity_type, $entity, $field, $instance, $langcode
               'error' => 'value2',
               'message' => t("An 'End date' is required for field %field #%delta.", array('%delta' => $field['cardinality'] ? intval($delta + 1) : '', '%field' => t($instance['label']))),
             );
-          }            
-        }       
+          }
+        }
       }
     }
   }
@@ -348,8 +349,8 @@ function date_field_update($entity_type, $entity, $field, $instance, $langcode,
       $items[$delta]['timezone'] = date_get_timezone($field['settings']['tz_handling'], $timezone);
       $items[$delta]['timezone_db'] = date_get_timezone_db($field['settings']['tz_handling']);
       $items[$delta]['date_type'] = $field['type'];
-    }  
-  }  
+    }
+  }
   $entity->{$field['field_name']}[$langcode] = $items;
 
   foreach ($values as $delta => $item) {
@@ -362,7 +363,7 @@ function date_field_update($entity_type, $entity, $field, $instance, $langcode,
         if ($field['settings']['todate']) {
           //$items[$delta]['value2'] = date_limit_value($items[$delta]['value2'], date_granularity($field), $field['type']);
         }
-      }  
+      }
     }
   }
   $entity->{$field['field_name']}[$langcode] = $items;
@@ -389,12 +390,12 @@ function date_field_settings_form($field, $instance, $has_data) {
 
 /**
  * Implements hook_content_migrate_field_alter().
- * 
+ *
  * Use this to tweak the conversion of field settings
  * from the D6 style to the D7 style for specific
  * situations not handled by basic conversion,
  * as when field types or settings are changed.
- * 
+ *
  * $field_value['widget_type'] is available to
  * see what widget type was originally used.
  */
@@ -406,13 +407,13 @@ function date_content_migrate_field_alter(&$field_value, $instance_value) {
       // level.
       unset($field_value['settings']['default_format']);
       unset($field_value['settings']['repeat_collapsed']);
-      break; 
+      break;
   }
 }
 
 /**
  * Implements hook_content_migrate_instance_alter().
- * 
+ *
  * Use this to tweak the conversion of instance or widget settings
  * from the D6 style to the D7 style for specific
  * situations not handled by basic conversion, as when
@@ -440,7 +441,7 @@ function date_content_migrate_instance_alter(&$instance_value, $field_value) {
         if ($display['type'] == 'format_interval') {
 
         }
-        else {      
+        else {
           $old_settings = date_old_formatter_get_settings($instance_value['field_name'], $instance_value['bundle'], $context);
           $display['settings'] = array_merge($display['settings'], $old_settings);
           // If the formatter was the 'default', then use the old 'default_format'
@@ -462,6 +463,6 @@ function date_old_formatter_get_settings($field_name, $type_name, $context) {
   $options['multiple_number'] = variable_get($value .'_multiple_number', '');
   $options['multiple_from'] = variable_get($value .'_multiple_from', '');
   $options['multiple_to'] = variable_get($value .'_multiple_to', '');
-  $options['fromto'] = variable_get($value .'_fromto', 'both');  
+  $options['fromto'] = variable_get($value .'_fromto', 'both');
   return $options;
 }
diff --git a/date_admin.inc b/date_admin.inc
index fc4c65b..fbd70b7 100644
--- a/date_admin.inc
+++ b/date_admin.inc
@@ -6,8 +6,8 @@
  */
 /**
  * Settings for the default formatter.
- */ 
-function date_default_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {  
+ */
+function date_default_formatter_settings_form($field, $instance, $view_mode, $form, &$form_state) {
   $display = $instance['display'][$view_mode];
   $settings = $display['settings'];
   $formatter = $display['type'];
@@ -20,20 +20,20 @@ function date_default_formatter_settings_form($field, $instance, $view_mode, $fo
     '#default_value' => $settings['format_type'],
     '#description' => t('To add or edit options, visit <a href="@date-time-page">Date and time settings</a>.', array('@date-time-page' => url('admin/config/regional/date-time'))),
     '#weight' => 0,
-  );      
+  );
 
   $form['fromto'] = array(
     '#title' => t('Display:'),
     '#type' => 'select',
     '#options' => array(
-      'both' => t('Both Start and End dates'), 
-      'value' => t('Start date only'), 
+      'both' => t('Both Start and End dates'),
+      'value' => t('Start date only'),
       'value2' => t('End date only'),
       ),
     '#access' => $field['settings']['todate'],
     '#default_value' => $settings['fromto'],
     '#weight' => 1,
-  );  
+  );
 
   // Make the string translatable by keeping it as a whole rather than
   // translating prefix and suffix separately.
@@ -77,7 +77,7 @@ function date_default_formatter_settings_form($field, $instance, $view_mode, $fo
     '#title' => t('Repeat rule:'),
     '#type' => 'select',
     '#options' => array(
-      'show' => t('Display repeat rule'), 
+      'show' => t('Display repeat rule'),
       'hide' => t('Hide repeat rule')),
     '#default_value' => $settings['show_repeat_rule'],
     '#access' => $field['settings']['repeat'],
@@ -103,12 +103,12 @@ function date_interval_formatter_settings_form($field, $instance, $view_mode, $f
     '#weight' => 0,
   );
   return $form;
-} 
+}
 
 /**
  * Settings summary for the default formatter.
  */
-function date_default_formatter_settings_summary($field, $instance, $view_mode) {  
+function date_default_formatter_settings_summary($field, $instance, $view_mode) {
   $display = $instance['display'][$view_mode];
   $settings = $display['settings'];
   $formatter = $display['type'];
@@ -116,11 +116,11 @@ function date_default_formatter_settings_summary($field, $instance, $view_mode)
   $summary = array();
 
   $summary[] = t('Display dates using the @format format', array('@format' => $format_types[$settings['format_type']]));
-  
+
   if ($field['settings']['todate']) {
     $options = array(
-      'both' => t('Display both Start and End dates'), 
-      'value' => t('Display Start date only'), 
+      'both' => t('Display both Start and End dates'),
+      'value' => t('Display Start date only'),
       'value2' => t('Display End date only'),
     );
     $summary[] = $options[$settings['fromto']];
@@ -128,9 +128,9 @@ function date_default_formatter_settings_summary($field, $instance, $view_mode)
 
   if (!empty($field['cardinality'])) {
     $summary[] = t('Show @count value(s) starting with @date1, ending with @date2', array(
-      '@count' => !empty($settings['multiple_number']) ? $settings['multiple_number'] : t('all'), 
-      '@date1' => !empty($settings['multiple_from']) ? $settings['multiple_from'] : t('earliest'), 
-      '@date2' => !empty($settings['multiple_to']) ? $settings['multiple_to'] : t('latest'), 
+      '@count' => !empty($settings['multiple_number']) ? $settings['multiple_number'] : t('all'),
+      '@date1' => !empty($settings['multiple_from']) ? $settings['multiple_from'] : t('earliest'),
+      '@date2' => !empty($settings['multiple_to']) ? $settings['multiple_to'] : t('latest'),
     ));
   }
 
@@ -141,7 +141,7 @@ function date_default_formatter_settings_summary($field, $instance, $view_mode)
     else {
       $summary[] = t('Do not show repeat rule');
     }
-  }  
+  }
 
   return implode('<br />', $summary);
 }
@@ -150,7 +150,7 @@ function date_default_formatter_settings_summary($field, $instance, $view_mode)
  * Settings summary for the interval formatter.
  * @TODO Add settings later.
  */
-function date_interval_formatter_settings_summary($field, $instance, $view_mode) {  
+function date_interval_formatter_settings_summary($field, $instance, $view_mode) {
   $summary = array();
   $display = $instance['display'][$view_mode];
   $settings = $display['settings'];
@@ -165,7 +165,7 @@ function _date_field_instance_settings_form($field, $instance) {
   $widget_settings = $instance['widget']['settings'];
 
   $form['default_value'] = array(
-    '#type' => 'select', 
+    '#type' => 'select',
     '#title' => t('Default date'),
     '#default_value' => $settings['default_value'],
     '#options' => array('blank' => t('No default value'), 'now' => t('Now'), 'strtotime' => t('Relative')),
@@ -175,7 +175,7 @@ function _date_field_instance_settings_form($field, $instance) {
 
   $description = t("Describe a time by reference to the current day, like '+90 days' (90 days from the day the field is created) or '+1 Saturday' (the next Saturday). See !strtotime for more details.", array('!strtotime' => l(t('strtotime'), 'http://www.php.net/manual/en/function.strtotime.php')));
   $form['default_value_code'] = array(
-    '#type' => 'textfield', 
+    '#type' => 'textfield',
     '#title' => t('Relative default value'),
     '#description' => $description,
     '#default_value' => $settings['default_value_code'],
@@ -187,7 +187,7 @@ function _date_field_instance_settings_form($field, $instance) {
     '#fieldset' => 'default_values',
     );
   $form['default_value2'] = array(
-    '#type' => !empty($field['settings']['todate']) ? 'select' : 'hidden', 
+    '#type' => !empty($field['settings']['todate']) ? 'select' : 'hidden',
     '#title' => t('Default end date'),
     '#default_value' => $settings['default_value2'],
     '#options' => array('same' => t('Same as Default date'), 'blank' => t('No default value'), 'now' => t('Now'), 'strtotime' => t('Relative')),
@@ -195,7 +195,7 @@ function _date_field_instance_settings_form($field, $instance) {
     '#fieldset' => 'default_values',
     );
   $form['default_value_code2'] = array(
-    '#type' => !empty($field['settings']['todate']) ? 'textfield' : 'hidden', 
+    '#type' => !empty($field['settings']['todate']) ? 'textfield' : 'hidden',
     '#title' => t('Relative default value for end date'),
     '#description' => $description,
     '#default_value' => $settings['default_value_code2'],
@@ -256,15 +256,22 @@ function _date_field_widget_settings_form($field, $instance) {
     '#default_value' => $settings['input_format'],
     '#options' => $options,
     '#description' => t('Control the order and format of the options users see.'),
+    '#weight' => 3,
+    '#fieldset' => 'date_format',
+  );
+  $form['display_all_day'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Display all day checkbox'),
+    '#default_value' => $settings['display_all_day'],
+    '#description' => t('Determines whether to display the \'All Day\' checkbox.'),
     '#weight' => 4,
     '#fieldset' => 'date_format',
   );
-
   // Only a limited set of formats is available for the Date Popup module
   if ($widget['type'] != 'date_popup') {
     $form['input_format']['#options']['custom'] = t('Custom format');
     $form['input_format_custom'] = array(
-      '#type' => 'textfield',  
+      '#type' => 'textfield',
       '#title' => t('Custom input format'),
       '#default_value' => $settings['input_format_custom'],
       '#description' => t("Override the input format selected above. Define a php date format string like 'm-d-Y H:i' (see <a href=\"@link\">http://php.net/date</a> for more details).", array('@link' => 'http://php.net/date')),
@@ -424,7 +431,7 @@ function _date_field_settings_form($field, $instance, $has_data) {
 
   // Make sure granularity is in the right format and has no empty values.
   if (!empty($settings['granularity']) && is_array($settings['granularity'])) {
-    $granularity = array_filter($settings['granularity']);  
+    $granularity = array_filter($settings['granularity']);
   }
   $tz_handling = $settings['tz_handling'];
 
diff --git a/date_elements.inc b/date_elements.inc
index 3e702cd..16211ce 100644
--- a/date_elements.inc
+++ b/date_elements.inc
@@ -60,7 +60,7 @@ function date_field_widget_form(&$form, &$form_state, $field, $instance, $langco
     }
   }
 
-  module_load_include('inc', 'date_api', 'date_api_elements');  
+  module_load_include('inc', 'date_api', 'date_api_elements');
   $timezone = date_get_timezone($field['settings']['tz_handling'], isset($items[0]['timezone']) ? $items[0]['timezone'] : date_default_timezone());
 
   // TODO see if there's a way to keep the timezone element from ever being
@@ -107,12 +107,12 @@ function date_field_widget_form(&$form, &$form_state, $field, $instance, $langco
       '#weight' => $instance['widget']['weight'] + 1,
       '#attributes' => array('class' => array('date-no-float')),
       '#date_label_position' => $instance['widget']['settings']['label_position'],
-      );  
+      );
   }
 
   // Add a date repeat form element, if needed.
   if (module_exists('date_repeat') && date_is_repeat_field($field, $instance)) {
-    module_load_include('inc', 'date', 'date_repeat');    
+    module_load_include('inc', 'date', 'date_repeat');
     _date_repeat_widget($element, $field, $instance, $items, $delta);
     $element['rrule']['#weight'] = $instance['widget']['weight'] + .4;
   }
@@ -240,25 +240,27 @@ function date_combo_element_process($element, &$form_state, $form) {
   $offset_field = 'offset';
   $offset_field2 = 'offset2';
 
-  if ($field['settings']['todate'] != 'required' 
-  && !empty($element['#default_value'][$to_field]) 
+  if ($field['settings']['todate'] != 'required'
+  && !empty($element['#default_value'][$to_field])
   && $element['#default_value'][$to_field] == $element['#default_value'][$from_field]) {
     unset($element['#default_value'][$to_field]);
   }
 
-  $from = $element['#default_value'][$from_field];
-  $to = !empty($element['#default_value'][$to_field]) ? $element['#default_value'][$to_field] : $element['#default_value'][$from_field];
-  $date_is_all_day = date_is_all_day($from, $to);
-  $all_day = !empty($form_state['values']['all_day']) || $date_is_all_day;
-  $element['all_day'] = array(
-    '#title' => t('All Day'),
-    '#type' => 'checkbox',
-    '#default_value' => $all_day,
-    '#weight' => -21,
-    '#access' => date_has_time($field['settings']['granularity']) && !in_array($instance['widget']['type'], array('date_text')),
-    '#prefix' => '<div class="date-float">',
-    '#suffix' => '</div>',
-  );
+  if ($instance['widget']['settings']['display_all_day']) {
+    $from = $element['#default_value'][$from_field];
+    $to = !empty($element['#default_value'][$to_field]) ? $element['#default_value'][$to_field] : $element['#default_value'][$from_field];
+    $date_is_all_day = date_is_all_day($from, $to);
+    $all_day = !empty($form_state['values']['all_day']) || $date_is_all_day;
+    $element['all_day'] = array(
+      '#title' => t('All Day'),
+      '#type' => 'checkbox',
+      '#default_value' => $all_day,
+      '#weight' => -21,
+      '#access' => date_has_time($field['settings']['granularity']) && !in_array($instance['widget']['type'], array('date_text')),
+      '#prefix' => '<div class="date-float">',
+      '#suffix' => '</div>',
+    );
+  }
   $all_day_id = str_replace('_', '-', 'edit-' . implode('-', $element['#array_parents']) . '-all-day');
 
   // Unlimited fields using javascript Add more button end up with altered ids.
@@ -309,7 +311,7 @@ function date_combo_element_process($element, &$form_state, $form) {
     '#date_all_day_id'  => $all_day_id,
     );
 
-  $description =  !empty($instance['description']) ? t($instance['description']) : ''; 
+  $description =  !empty($instance['description']) ? t($instance['description']) : '';
 
   // Give this element the right type, using a Date API
   // or a Date Popup element type.
@@ -337,7 +339,7 @@ function date_combo_element_process($element, &$form_state, $form) {
   // is the 'Start' and which is the 'End' .
 
   if (!empty($field['settings']['todate'])) {
-    // Add class to allow date parts to float together on the same line. 
+    // Add class to allow date parts to float together on the same line.
     $element[$from_field]['#title']  = ''; // The title is in the fieldset.
     $element[$to_field] = $element[$from_field];
     $element[$to_field]['#default_value'] = isset($element['#default_value'][$to_field]) ? $element['#default_value'][$to_field] : '';
@@ -457,7 +459,7 @@ function date_combo_validate($element, &$form_state) {
     }
   }
 
-  // If the user chose the option to not show the end date, just swap in the 
+  // If the user chose the option to not show the end date, just swap in the
   // start date as that value so the start and end dates are the same.
   if ($field['settings']['todate'] == 'optional' && empty($item['show_todate'])) {
     $item[$to_field] = $item[$from_field];
@@ -504,10 +506,10 @@ function date_combo_validate($element, &$form_state) {
         }
       }
 
-      // If all date values were empty and a date is required, throw 
-      // an error on the first element. We don't want to create 
-      // duplicate messages on every date part, so the error will 
-      // only go on the first.  
+      // If all date values were empty and a date is required, throw
+      // an error on the first element. We don't want to create
+      // duplicate messages on every date part, so the error will
+      // only go on the first.
       if ($to_date_empty && $field['settings']['todate'] == 'required') {
         $errors[] = t('Some value must be entered in the End date.');
       }
@@ -574,7 +576,7 @@ function date_combo_validate($element, &$form_state) {
       // and we are using a date with time granularity,
       // test a roundtrip back to the original timezone to catch
       // invalid dates, like 2AM on the day that spring daylight savings
-      // time begins in the US.  
+      // time begins in the US.
       $granularity = date_format_order($element[$from_field]['#date_format']);
       if ($timezone != $timezone_db && date_has_time($granularity)) {
         date_timezone_set($from_date, timezone_open($timezone));
@@ -597,7 +599,7 @@ function date_combo_validate($element, &$form_state) {
       form_set_error($error_field, t('There are errors in @field_name value #@delta:', array('@field_name' => $instance['label'], '@delta' => $delta + 1)) . theme('item_list', array('items' => $errors)));
     }
     else {
-      form_set_error($error_field, t('There are errors in @field_name:', array('@field_name' => $instance['label'])) . theme('item_list', array('items' => $errors)));      
+      form_set_error($error_field, t('There are errors in @field_name:', array('@field_name' => $instance['label'])) . theme('item_list', array('items' => $errors)));
     }
   }
 }
