diff --git a/core/modules/field/field.info.inc b/core/modules/field/field.info.inc
index 78bc62e..16ea79f 100644
--- a/core/modules/field/field.info.inc
+++ b/core/modules/field/field.info.inc
@@ -351,10 +351,12 @@ function _field_info_prepare_instance_display($field, $display) {
   // Fill in default values.
   $display += array(
     'label' => 'above',
-    'type' => $field_type['default_formatter'],
     'settings' => array(),
     'weight' => 0,
   );
+  if (empty($display['type'])) {
+    $display['type'] = $field_type['default_formatter'];
+  }
   if ($display['type'] != 'hidden') {
     $formatter_type = field_info_formatter_types($display['type']);
     // Fallback to default formatter if formatter type is not available.
