diff --git a/facetapi_pretty_paths.module b/facetapi_pretty_paths.module
index 37b3889..fa935da 100644
--- a/facetapi_pretty_paths.module
+++ b/facetapi_pretty_paths.module
@@ -202,6 +202,12 @@ function facetapi_pretty_paths_admin_form($form, &$form_state) {
       '#default_value' => isset($options['sort_path_segments']) ? $options['sort_path_segments'] : FALSE,
       '#description' => t("Sorted paths lead to unique, canonical urls. Keep in mind that this will replace the order in which user clicked the facets."),
     );
+    $form['searcher'][$id . '_options']['unique_path_segments'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Allow only one path alias for each facet.'),
+      '#default_value' => isset($options['unique_path_segments']) ? $options['sort_path_segments'] : FALSE,
+      '#description' => t("This setting prevents multiple same aliases in paths that clicking hierarchical vocabulary terms could lead to."),
+    );
   }
   return system_settings_form($form);
 }
diff --git a/plugins/facetapi/url_processor_pretty_paths.inc b/plugins/facetapi/url_processor_pretty_paths.inc
index 0c52247..423131d 100644
--- a/plugins/facetapi/url_processor_pretty_paths.inc
+++ b/plugins/facetapi/url_processor_pretty_paths.inc
@@ -175,6 +175,15 @@ class FacetapiUrlProcessorPrettyPaths extends FacetapiUrlProcessorStandard {
    * @return string
    */
   public function constructPath(array $segments) {
+    if (!empty($this->options['unique_path_segments'])) {
+      // Remove duplicate segments.
+      foreach($segments as $segment) {
+        $segments_unique[$segment['alias']] = $segment;
+      }
+      if(isset($segments_unique)) {
+        $segments = $segments_unique;
+      }
+    }
     if (!empty($this->options['sort_path_segments'])) {
       // Sort to avoid multiple urls with duplicate content.
       uksort($segments, 'strnatcmp');
