diff --git a/facetapi_taxonomy_sort.module b/facetapi_taxonomy_sort.module
index a1ea5b1..568aa59 100644
--- a/facetapi_taxonomy_sort.module
+++ b/facetapi_taxonomy_sort.module
@@ -14,13 +14,21 @@
  *   TRUE if the field is a term reference field.
  */
 function facetapi_taxonomy_sort_is_term_reference_field(array $facet) {
-  if ($facet['field api name'] && ($field_info = field_info_field($facet['field api name']))) {
-    return ('taxonomy_term_reference' == $field_info['type']);
-  }
-  else {
-    // For Search API, fall back to the field type key.
-    // @see http://drupal.org/node/1377734
-    return isset($facet['field type']) && 'taxonomy_term' == $facet['field type'];
+  $field_info = field_info_field($facet['field api name']);
+
+  if ($field_info && isset($facet['field api name'])) {
+    // Fallback for entityreference.
+    if (($field_info['type'] == 'entityreference')) {
+      return ('taxonomy_term' == $field_info['settings']['target_type']);
+    }
+    elseif ($facet['field type'] && ('taxonomy_term' == $facet['field type'])) {
+      // For Search API, fall back to the field type key.
+      // @see http://drupal.org/node/1377734
+      return TRUE;
+    }
+    elseif (isset($facet['field api name'])) {
+      return ('taxonomy_term_reference' == $field_info['type']);
+    }
   }
 }
 
