Index: date_elements.inc
===================================================================
--- date_elements.inc
+++ date_elements.inc	(working copy)
@@ -381,6 +381,11 @@
     return;
   }
   
+  // If the whole field is empty and the date widget type has been changed to value, stop now.
+  if (empty($element['#post'][$field_name]) && $element['#required'] && $element['#type'] == 'value') {
+    return;
+  }
+  
   // Repeating dates have a different form structure, so get the
   // right item values.
   $item = isset($form_values[$field_name]['rrule']) ? $form_values[$field_name] : $form_values[$field_name][$delta];
