diff --git a/date.theme b/date.theme
index 7f935190..5ad34133 100644
--- a/date.theme
+++ b/date.theme
@@ -118,31 +118,32 @@ function theme_date_display_combination($variables) {
 
   switch ($options['fromto']) {
     case 'value':
-      $date1 = $dates['value']['formatted'];
+      $date1 = isset($dates['value']['formatted']) ? $dates['value']['formatted'] : '';
       $date2 = $date1;
       break;
 
     case 'value2':
-      $date2 = $dates['value2']['formatted'];
+      $date2 = isset($dates['value2']['formatted']) ? $dates['value2']['formatted'] : '';
       $date1 = $date2;
       break;
 
     default:
-      $date1 = $dates['value']['formatted'];
-      $date2 = $dates['value2']['formatted'];
+      $date1 = isset($dates['value']['formatted']) ? $dates['value']['formatted'] : '';
+      $date2 = isset($dates['value2']['formatted']) ? $dates['value2']['formatted'] : '';
+      break;
   }
 
   // Pull the timezone, if any, out of the formatted result and tack it back on
   // at the end, if it is in the current formatted date.
-  $timezone = $dates['value']['formatted_timezone'];
+  $timezone = isset($dates['value']['formatted_timezone']) ? $dates['value']['formatted_timezone'] : '';
   if ($timezone) {
     $timezone = ' ' . $timezone;
   }
   $date1 = str_replace($timezone, '', $date1);
   $date2 = str_replace($timezone, '', $date2);
-  $time1 = preg_replace('`^([\(\[])`', '', $dates['value']['formatted_time']);
+  $time1 = preg_replace('`^([\(\[])`', '', isset($dates['value']['formatted_time']) ? $dates['value']['formatted_time'] : '');
   $time1 = preg_replace('([\)\]]$)', '', $time1);
-  $time2 = preg_replace('`^([\(\[])`', '', $dates['value2']['formatted_time']);
+  $time2 = preg_replace('`^([\(\[])`', '', isset($dates['value2']['formatted_time']) ? $dates['value2']['formatted_time'] : '');
   $time2 = preg_replace('([\)\]]$)', '', $time2);
 
   // A date with a granularity of 'hour' has a time string that is an integer
@@ -154,7 +155,7 @@ function theme_date_display_combination($variables) {
 
   // Check remaining days.
   $show_remaining_days = '';
-  if (!empty($variables['show_remaining_days'])) {
+  if (!empty($variables['show_remaining_days']) && isset($variables['dates']['value']['formatted_iso'])) {
     $remaining_days = floor((strtotime($variables['dates']['value']['formatted_iso'])
     - strtotime('now')) / (24 * 3600));
 
