See: http://drupal.org/node/1014708

diff -Nurp ../drupal-7.0.orig/modules/field/field.crud.inc ./modules/field/field.crud.inc
--- ../drupal-7.0.orig/modules/field/field.crud.inc	2011-01-05 08:13:44.000000000 -0600
+++ ./modules/field/field.crud.inc	2011-01-05 08:39:16.000000000 -0600
@@ -363,7 +363,10 @@ function field_read_fields($params = arr
     $field['translatable'] = $record['translatable'];
     $field['deleted'] = $record['deleted'];
 
-    module_invoke_all('field_read_field', $field);
+    $additions = (array) module_invoke_all('field_read_field', $field);
+
+    // Merge the changes provided by each hook_field_read_field().
+    $field = array_merge($field, $additions);
 
     // Populate storage information.
     module_load_install($field['module']);
