--- date_elements_original.inc	2011-09-08 04:53:20.000000000 -0400
+++ date_elements.inc	2011-09-26 08:22:20.564019300 -0400
@@ -468,12 +468,21 @@ function date_combo_validate($element, &
   // we'll need to adjust the time.
   $all_day = FALSE;
   if (!empty($item['all_day'])) {
-    $all_day = TRUE;
-    // If we have an all day flag on this date and the time is empty,
-    // change the format to match the input value so we don't get validation errors.
-    $element[$from_field]['#date_format'] = date_part_format('date', $element[$from_field]['#date_format']);
-    if (!empty($field['settings']['todate'])) {
-      $element[$to_field]['#date_format'] = date_part_format('date', $element[$to_field]['#date_format']);
+    //first check to see if all objects to pull data from exist
+    if (isset($element['#value']['value']['date']) && isset($element['#default_value']['timezone']) && isset($element['value']['#date_format'])) {
+			//grab a copy of the date object, and see whether or not an error is thrown. If so, perform date_part_format
+			$date = new DateObject($element['#value']['value']['date'], $element['#default_value']['timezone'], $element['value']['#date_format']);
+			if (count($date->errors) > 0) {
+				// If we have an all day flag on this date and the time is empty,
+				// change the format to match the input value so we don't get validation errors.
+				$all_day = TRUE;
+			}
+    }
+    if ($all_day) {
+    	$element[$from_field]['#date_format'] = date_part_format('date', $element[$from_field]['#date_format']);
+			if (!empty($field['settings']['todate'])) {
+				$element[$to_field]['#date_format'] = date_part_format('date', $element[$to_field]['#date_format']);
+			}
     }
   }
 
