diff --git a/date_popup/date_popup.module b/date_popup/date_popup.module
index f219a72..793fada 100644
--- a/date_popup/date_popup.module
+++ b/date_popup/date_popup.module
@@ -378,7 +378,7 @@ function date_popup_validate($element, &$form_state) {
   // If the field is empty and not required, set it to empty and return.
   // If the field is empty and required, set error message and return.
   $error_field = implode('][', $element['#parents']);
-  if (empty($element['#value']['date'])) {
+  if (empty($element['#value']['date']) && empty($element['#value']['time'])) {
     if ($element['#required']) {
       // Set message on both date and time to get them highlighted properly.
       $message = t('Field %field is required.', array('%field' => $label));
@@ -435,7 +435,7 @@ function date_popup_input_value($element, $auto_complete = FALSE) {
   $time_format = date_limit_format($format, array('hour', 'minute', 'second'));
   $date_format = date_limit_format($format, array('year', 'month', 'day'));
   $value = '';
-  if (is_array($element['#value']) && !empty($element['#value']['date'])) {
+  if (is_array($element['#value']) && !(empty($element['#value']['date']) && empty($element['#value']['time']))) {
     $date = date_convert_from_custom(trim(!empty($element['#value']['date']) ? $element['#value']['date'] : ''), $date_format);
     $time = date_convert_from_custom(trim(!empty($element['#value']['time']) ? $element['#value']['time'] : ''), $time_format);
     $value = trim(substr($date, 0, 10) .' '. substr($time, 11, 8));
