diff --git a/apachesolr.module b/apachesolr.module
index 69b7e9e..d3d2d65 100644
--- a/apachesolr.module
+++ b/apachesolr.module
@@ -1919,6 +1919,51 @@ function apachesolr_entity_fields($entity_type = 'node') {
         }
       }
     }
+    $fields_collate = _field_info_collate_fields();
+    $extra_fields = $fields_collate['extra_fields'];
+    foreach ($extra_fields[$entity_type] as $bundle => $extra_field) {
+      
+      if (isset($extra_field['display'])) {
+        foreach ($extra_field['display'] as $field_name => $field_info) {
+          $row = array();
+          
+          if ( isset($mappings['per-field'][$field_name]['index_type']) || isset ($mappings[$field_name]['index_type'])) {
+           
+            if (isset($mappings['per-field'][$field_name])) {
+              $row = $mappings['per-field'][$field_name];
+            }
+            else {
+               $row = $mappings[$field_name];
+            }
+             // The field info array.
+            $field_info['field_name'] = $field_name;
+            $field_info['type'] = $row['index_type'];
+            $row['field'] = $field_info;
+
+            // @todo: for fields like taxonomy we are indexing multiple Solr fields
+            // per entity field, but are keying on a single Solr field name here.
+            $function = !empty($row['name callback']) ? $row['name callback'] : NULL;
+            if ($function && is_callable($function)) {
+              $row['name'] = $function($field_info);
+            }
+            else {
+              $row['name'] = $field_name;
+            }
+            
+            $row['display_name'] = $field_info['label'];
+            $row['bundles'][] = $bundle;
+          
+            // Only add to the $fields array if some instances are displayed for the search index.
+            if (!empty($row['bundles'])) {
+              // Use the Solr index key as the array key.
+
+              $fields[$entity_type][apachesolr_index_key($row)] = $row;
+            }
+            
+          }
+        }
+      }  
+    }
   }
   return $fields[$entity_type];
 }
