Index: date/date.theme
===================================================================
--- date/date.theme	(revision 436)
+++ date/date.theme	(working copy)
@@ -50,7 +50,7 @@
   
   $node = $element['#node'];
   $field_name = $element['#field_name'];
-  $context = !empty($node->content) && !empty($node->content[$field_name]) ? $node->content[$field_name]['#context'] : 'full';
+  $context = _date_find_field_context($field_name,$node->content);
   $type_name = $element['#type_name'];
   $fields = content_fields();
   $field = $fields[$field_name];
@@ -177,7 +177,7 @@
 function theme_date_format_interval($element) {
   $node = $element['#node'];
   $field_name = $element['#field_name'];
-  $context = !empty($node->content) ? $node->content[$field_name]['#context'] : 'full';
+  $context = _date_find_field_context($field_name,$node->content);
   $type_name = $element['#type_name'];
   $fields = content_fields();
   $field = $fields[$field_name];
@@ -300,4 +300,27 @@
 function theme_date_all_day_label() {
   return '('. date_t('All day', 'datetime') .')';
 }
-/** @} End of addtogroup themeable */
\ No newline at end of file
+/** @} End of addtogroup themeable */
+  
+/**
+ * Helper function - try to find the context (teaser or full) of a field, searching inside fieldsets
+ */
+function _date_find_field_context($field_name, $content)
+{
+  if (empty($content)) return '';
+  if (!empty($content[$field_name])) {
+    return $content[$field_name]['#context'];
+  } 
+  foreach ($content as $item) {
+    if (!empty($item['#context'])) {
+      return $item['#context'];
+    }
+    if (!empty($item['group'])) { //fieldset
+      $context = _date_find_field_context($field_name, $item['#group']);
+      if (!empty($context)) {
+        return $context;
+      }
+    }
+  }
+  return '';
+}
\ No newline at end of file
