diff --git a/plugins/facetapi/adapter.inc b/plugins/facetapi/adapter.inc
index 0a18718..6ea349c 100644
--- a/plugins/facetapi/adapter.inc
+++ b/plugins/facetapi/adapter.inc
@@ -768,6 +768,24 @@ abstract class FacetapiAdapter {
   }
 
   /**
+   * Helper function that returns the query string variables for a facet item.
+   *
+   * @param array $facet
+   *   The facet definition.
+   * @param array $values
+   *   An array containing the item's values being added to or removed from the
+   *   query string dependent on whether or not the item is active.
+   * @param int $active
+   *   An integer flagging whether the item is active or not.
+   *
+   * @return string
+   *   The query string vriables.
+   */
+  public function getFacetPath(array $facet, array $values, $active) {
+    return $this->urlProcessor->getFacetPath($facet, $values, $active);
+  }
+
+  /**
    * Initializes facet builds, adds breadcrumb trail.
    */
   public function processFacets() {
@@ -1264,7 +1282,6 @@ class FacetapiFacetProcessor {
    *   The initialized render array with processed hierarchical relationships.
    */
   protected function processHierarchy(array $build) {
-
     // Builds the hierarchy information if the hierarchy callback is defined.
     if ($this->facet['hierarchy callback']) {
       $parents = $this->facet['hierarchy callback'](array_keys($build));
@@ -1324,12 +1341,31 @@ class FacetapiFacetProcessor {
       // current search block as well.
       $this->activeChildren[$value] = $values;
 
-      // Formats query string for facet item, sets theme function.
+      // Formats path and query string for facet item, sets theme function.
+      $item['#path'] = $this->getFacetPath($values, $item['#active']);
       $item['#query'] = $this->getQueryString($values, $item['#active']);
     }
   }
 
   /**
+   * Helper function that returns the path for a facet item.
+   *
+   * @param array $values
+   *   An array containing the item's values being added to or removed from the
+   *   query string dependent on whether or not the item is active.
+   * @param int $active
+   *   An integer flagging whether the item is active or not.
+   *
+   * @return
+   *   The facet path string.
+   */
+  public function getFacetPath(array $values, $active) {
+    return $this->facet
+      ->getAdapter()
+      ->getFacetPath($this->facet->getFacet(), $values, $active);
+  }
+
+  /**
    * Helper function that returns the query string variables for a facet item.
    *
    * @param array $values
@@ -1338,7 +1374,7 @@ class FacetapiFacetProcessor {
    * @param int $active
    *   An integer flagging whether the item is active or not.
    *
-   * @reutrn
+   * @return
    *   An array containing the query string variables.
    */
   public function getQueryString(array $values, $active) {
diff --git a/plugins/facetapi/url_processor.inc b/plugins/facetapi/url_processor.inc
index f71590f..0cff4ab 100644
--- a/plugins/facetapi/url_processor.inc
+++ b/plugins/facetapi/url_processor.inc
@@ -76,6 +76,25 @@ abstract class FacetapiUrlProcessor {
   abstract public function getQueryString(array $facet, array $values, $active);
 
   /**
+   * Returns the path for a facet item.
+   *
+   * @param array $facet
+   *   The facet definition.
+   * @param array $values
+   *   An array containing the item's values being added to or removed from the
+   *   query string dependent on whether or not the item is active.
+   * @param int $active
+   *   An integer flagging whether the item is active or not.
+   *
+   * @return string
+   *   The path of the facet.
+   */
+  public function getFacetPath(array $facet, array $values, $active) {
+    return $this->adapter->getSearchPath();
+  }
+
+
+  /**
    * Sets the breadcrumb trail on searches.
    */
   abstract public function setBreadcrumb();
