diff --git modules/field/field.default.inc modules/field/field.default.inc
index e2f012c..0a5fe6c 100644
--- modules/field/field.default.inc
+++ modules/field/field.default.inc
@@ -142,14 +142,18 @@ function field_default_prepare_view($entity_type, $entities, $field, $instances,
   foreach ($instances as $id => $instance) {
     if (is_string($display)) {
       $view_mode = $display;
-      $display = field_get_display($instance, $view_mode, $entities[$id]);
+      $instance_display = field_get_display($instance, $view_mode, $entities[$id]);
     }
-    if ($display['type'] !== 'hidden') {
-      $module = $display['module'];
+    else {
+      $instance_display = $display;
+    }
+
+    if ($instance_display['type'] !== 'hidden') {
+      $module = $instance_display['module'];
       $modules[$module] = $module;
       $grouped_entities[$module][$id] = $entities[$id];
       $grouped_instances[$module][$id] = $instance;
-      $grouped_displays[$module][$id] = $display;
+      $grouped_displays[$module][$id] = $instance_display;
       // hook_field_formatter_prepare_view() alters $items by reference.
       $grouped_items[$module][$id] = &$items[$id];
     }
