diff --git a/includes/callback_attachments_settings.inc b/includes/callback_attachments_settings.inc
index 147a1ec..a9af419 100644
--- a/includes/callback_attachments_settings.inc
+++ b/includes/callback_attachments_settings.inc
@@ -25,6 +25,7 @@ class SearchApiAttachmentsAlterSettings extends SearchApiAbstractAlterCallback {
       }
     }
     else {
+      // Case of the file type fields.
       $fields = self::getFileFields();
       foreach ($items as $id => &$item) {
         foreach ($fields as $name => $field) {
@@ -40,6 +41,55 @@ class SearchApiAttachmentsAlterSettings extends SearchApiAbstractAlterCallback {
           }
         }
       }
+      // Case of the field colection fields.
+      if (module_exists('field_collection')) {
+        // Get the field collection bundles.
+        $field_collections_instances = field_info_instances('field_collection_item');
+        $field_collections = array_keys($field_collections_instances);
+        if (!empty($field_collections_instances)) {
+          foreach ($items as $id => &$item) {
+            // Case of field collection fields.
+            foreach ($field_collections as $field_collection) {
+              if (isset($item->{$field_collection})) {
+                // Get the file fields of the field collection item.
+                $file_fields = array();
+                foreach (array_keys($field_collections_instances[$field_collection]) as $field_name) {
+                  $field_info = field_info_field($field_name);
+                  if ($field_info['type'] == 'file') {
+                    $file_fields[] = $field_name;
+                  }
+                }
+
+                $collections = field_get_items($this->index->item_type, $item, $field_collection);
+                if ($collections) {
+                  $collection_item_ids = array();
+                  foreach ($collections as $field_collection_id) {
+                    $collection_item_ids[] = $field_collection_id['value'];
+                  }
+                  $collection_items = entity_load_multiple_by_name('field_collection_item', $collection_item_ids);
+                }
+
+                // Index the files content.
+                if (!empty($file_fields)) {
+                  foreach ($file_fields as $file_field) {
+                    foreach ($collection_items as $collection_item) {
+                      $files = field_get_items('field_collection_item', $collection_item, $file_field);
+                      if (!empty($files)) {
+                        foreach ($files as $file) {
+                          if (!in_array($file['filemime'], $exclude) && !self::is_temporary($file)) {
+                            $attachments = 'attachments_' . $file_field;
+                            $item->$attachments .= self::getFileContent($file) . ' ';
+                          }
+                        }
+                      }
+                    }
+                  }
+                }
+              }
+            }
+          }
+        }
+      }
     }
   }
 
@@ -81,7 +131,7 @@ class SearchApiAttachmentsAlterSettings extends SearchApiAbstractAlterCallback {
   protected function getFileFields() {
     $ret = array();
     foreach (field_info_fields() as $name => $field) {
-      if ($field['type'] == 'file' && array_key_exists($this->index->item_type, $field['bundles'])) {
+      if ($field['type'] == 'file') {
         $ret[$name] = $field;
       }
     }
