diff --git a/date/date.theme b/date/date.theme
index d7333b1..6aa6d4d 100644
--- a/date/date.theme
+++ b/date/date.theme
@@ -252,18 +252,16 @@ function theme_date_all_day($field, $which, $date1, $date2, $format, $node, $vie
     $date2 = $date1;
   }
 
-  if (!date_has_time($field['granularity'])) {
+  $old_format = $format;
+  $suffix = '';
+  if (!date_has_time($field['granularity']) || $all_day = date_field_all_day($field, $date1, $date2)) {
     $format = date_limit_format($format, array('year', 'month', 'day'));
-    return date_format_date($$which, 'custom', $format);
   }
-
-  if ($all_day = date_field_all_day($field, $date1, $date2)) {
-    $format = date_limit_format($format, array('year', 'month', 'day'));
-    return trim(date_format_date($$which, 'custom', $format) .' '. theme('date_all_day_label'));
-  }
-  else {
-    return date_format_date($$which, 'custom', $format);
+  if ($all_day && $old_format != $format) {
+    $suffix = ' ' . theme('date_all_day_label');
   }
+
+  return trim(date_format_date($$which, 'custom', $format) . $suffix);
 }
 
 /**
