diff --git a/contrib/search_api_facetapi/search_api_facetapi.module b/contrib/search_api_facetapi/search_api_facetapi.module
index 64aec58..91d8f80 100644
--- a/contrib/search_api_facetapi/search_api_facetapi.module
+++ b/contrib/search_api_facetapi/search_api_facetapi.module
@@ -108,10 +108,15 @@ function search_api_facetapi_facetapi_facet_info(array $searcher_info) {
         $field['key'] = $key;
         // Determine which, if any, of the field type-specific options will be
         // used for this field.
-        $type = isset($field['entity_type']) ? $field['entity_type'] : $field['type'];
-        $type_settings += array($type => array());
+        if (isset($field['entity_type'])) {
+          $type = $inner_type = $field['entity_type'];
+        } else {
+          $type = $field['type'];
+          $inner_type = search_api_extract_inner_type($type);
+        }
+        $type_settings += array($inner_type => array());
 
-        $facet_info[$key] = $type_settings[$type] + array(
+        $facet_info[$key] = $type_settings[$inner_type] + array(
           'label' => $field['name'],
           'description' => t('Filter by @type.', array('@type' => $field['name'])),
           'allowed operators' => array(
@@ -125,7 +130,7 @@ function search_api_facetapi_facetapi_facet_info(array $searcher_info) {
           'map options' => array(),
           'field type' => $type,
         );
-        if ($type === 'date') {
+        if ($inner_type === 'date') {
           $facet_info[$key]['description'] .= ' ' . t('(Caution: This may perform very poorly for large result sets.)');
         }
         $facet_info[$key]['map options'] += array(
