diff --git a/date_popup/date_popup.module b/date_popup/date_popup.module
index cc30967..d04b8b6 100644
--- a/date_popup/date_popup.module
+++ b/date_popup/date_popup.module
@@ -399,7 +399,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));
@@ -456,7 +456,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(drupal_substr($date, 0, 10) .' '. drupal_substr($time, 11, 8));
