--- date_elements_orig.inc	2010-06-29 09:25:27.000000000 -0400
+++ date_elements.inc	2010-06-29 09:23:49.000000000 -0400
@@ -379,9 +379,9 @@ function date_combo_validate($element, &
   $form_values = $form_state['values'];
   $field_name = $element['#field_name'];
   $delta = $element['#delta'];
-  
-  // If the whole field is empty and that's OK, stop now.
-  if (empty($element['#post'][$field_name]) && !$element['#required']) {
+
+  // If the whole field is empty and that's OK, or user has no access to this field stop now.
+  if ((empty($element['#post'][$field_name]) && !$element['#required']) || !$element['#access']) {
     return;
   }
   
@@ -396,7 +396,7 @@ function date_combo_validate($element, &
   $tz_field = 'timezone';
   $offset_field = 'offset';
   $offset_field2 = 'offset2';
-  
+
   // Unfortunately, due to the fact that much of the processing is already
   // done by the time we get here, it is not possible highlight the field
   // with an error, we just try to explain which element is creating the
@@ -473,7 +473,7 @@ function date_combo_validate($element, &
     else {
       $to_date = $from_date;
     }
-    
+
     // Neither the from date nor the to date should be empty at this point
     // unless they held values that couldn't be evaluated.
     if (!$field['required'] && (empty($from_date) || empty($to_date))) {
