diff --git a/contrib/search_api_facetapi/search_api_facetapi.module b/contrib/search_api_facetapi/search_api_facetapi.module
index 64aec58..29a2dbd 100644
--- a/contrib/search_api_facetapi/search_api_facetapi.module
+++ b/contrib/search_api_facetapi/search_api_facetapi.module
@@ -92,7 +92,7 @@ function search_api_facetapi_facetapi_facet_info(array $searcher_info) {
       // other modules.
       $type_settings = array(
         'taxonomy_term' => array(
-          'hierarchy callback' => 'facetapi_get_taxonomy_hierarchy',
+          'hierarchy callback' => 'search_api_facetapi_get_taxonomy_hierarchy',
         ),
         'date' => array(
           'query type' => 'date',
@@ -227,6 +227,26 @@ function search_api_facetapi_settings($realm_name, SearchApiIndex $index) {
 }
 
 /**
+ * Gets hierarchy information for taxonomy terms.
+ *
+ * Used as a hierarchy callback in search_api_facetapi_facetapi_facet_info().
+ *
+ * Internally just uses facetapi_get_taxonomy_hierarchy(), but makes sure that
+ * our special "!" value is not passed.
+ *
+ * @param array $values
+ *   An array containing the term IDs.
+ *
+ * @return array
+ *   An associative array mapping term IDs to parent IDs (where parents could be
+ *   found).
+ */
+function search_api_facetapi_get_taxonomy_hierarchy(array $values) {
+  $values = array_filter($values, 'is_numeric');
+  return $values ? facetapi_get_taxonomy_hierarchy($values) : array();
+}
+
+/**
  * Map callback for all search_api facet fields.
  *
  * @param array $values
