diff --git a/custom_search.module b/custom_search.module
old mode 100644
new mode 100755
index 6d5e234..559d28c
--- a/custom_search.module
+++ b/custom_search.module
@@ -307,6 +307,7 @@ function custom_search_form_alter(&$form, &$form_state, $form_id) {
  * Alter the search to respect the search modes selected.
  */
 function custom_search_submit($form, &$form_state) {
+	$path_suffix = "";
   $delta = (isset($form_state['values']['delta'])) ? 'blocks_' . $form_state['values']['delta'] . '_' : '' ;
   variable_set('custom_search_delta', $delta); // save for later use (exclusion & refresh)
   $type = 'node';
@@ -324,6 +325,17 @@ function custom_search_submit($form, &$form_state) {
         $vterms = $form_state['values']['custom_search_vocabulary_' . $voc->vid];
         if (!is_array($vterms)) $vterms = array($vterms);
         $terms = array_merge($terms, $vterms);
+        //If vocabulary has a custom search suffix, and user has chosen a term. Add the custom suffix to search path.
+        if(isset($form_state['values']['custom_search_vocabulary_' . $voc->vid.'_path_suffix'])){
+          $vterms = array_map('_custom_search_filter_keys', array_values(array_filter($vterms)));
+          if($vterms[0] != "all"){
+            $vpath_suffix = $form_state['values']['custom_search_vocabulary_' . $voc->vid.'_path_suffix'];
+            if (strpos($vpath_suffix, '[vterms]') !== FALSE){
+              $vpath_suffix = str_replace('[vterms]', (count($vterms)) ? implode($form_state['values']['custom_search_paths_terms_separator'], $vterms) : '', $vpath_suffix);
+            }
+            $path_suffix .= $vpath_suffix;
+          }
+        }
       }
     }
     $terms = array_map('_custom_search_filter_keys', array_values(array_filter($terms)));
@@ -403,7 +415,7 @@ function custom_search_submit($form, &$form_state) {
 
   if (isset($form_state['values']['custom_search_paths']) && $form_state['values']['custom_search_paths'] != '') {
     // build the custom path
-    $custom_path = str_replace('[key]', $form_state['values'][$form_state['values']['form_id']], $form_state['values']['custom_search_paths']);
+    $custom_path = str_replace('[key]', $form_state['values'][$form_state['values']['form_id']], $form_state['values']['custom_search_paths']) . $path_suffix;
     if (strpos($form_state['values']['custom_search_paths'], '[terms]') !== FALSE) $custom_path = str_replace('[terms]', (count($terms)) ? implode($form_state['values']['custom_search_paths_terms_separator'], $terms) : '', $custom_path);
     $form_state['redirect'] = $custom_path;
     // check for external path. If not, add base path
diff --git a/modules/custom_search_taxonomy/custom_search_taxonomy.module b/modules/custom_search_taxonomy/custom_search_taxonomy.module
old mode 100644
new mode 100755
index f39e780..349a4c6
--- a/modules/custom_search_taxonomy/custom_search_taxonomy.module
+++ b/modules/custom_search_taxonomy/custom_search_taxonomy.module
@@ -59,6 +59,10 @@ function custom_search_taxonomy_form_alter(&$form, &$form_state, $form_id) {
         $vocabularies = taxonomy_get_vocabularies();
         foreach ($vocabularies as $voc) {
           if (variable_get('custom_search_' . $delta . 'voc' . $voc->vid . '_selector', 'disabled') != 'disabled') {
+            $form['custom_search_vocabulary_' . $voc->vid . '_path_suffix'] = array(
+              '#type' => 'value',
+              '#value' => variable_get('custom_search_' . $delta . 'voc' . $voc->vid . '_path_suffix', FALSE)
+            );
             $options = array();
             $options['c-all'] = variable_get('custom_search_' . $delta . 'voc' . $voc->vid . '_selector_all', CUSTOM_SEARCH_ALL_TEXT_DEFAULT);
             $vocabulary_depth = (!variable_get('custom_search_' . $delta . 'voc' . $voc->vid . '_selector_depth', 0)) ? NULL : variable_get('custom_search_' . $delta . 'voc' . $voc->vid . '_selector_depth', 0);
@@ -166,6 +170,12 @@ function custom_search_taxonomy_form_alter(&$form, &$form_state, $form_id) {
               '#required'       => TRUE,
               '#description'    => t('Enter the text for "any term" choice. The default value is "!default".', array('!default' => CUSTOM_SEARCH_ALL_TEXT_DEFAULT)),
             );
+            $form['settings']['taxonomy'][$voc->name]['custom_search_blocks_' . $delta . '_voc' . $voc->vid . '_path_suffix'] = array(
+              '#type'           => 'textfield',
+              '#title'          => t('Custom Search Path Suffix'),
+              '#default_value'  => variable_get('custom_search_blocks_' . $delta . '_voc' . $voc->vid . '_path_suffix', ''),
+              '#description'    => t('If you want to use a custom search path suffix for this particular vocabulary enter it here, for instance: ?filter[type][0]="[vterms]". The [vterms] token will be replaced by the selected taxonomys term ids.'),
+            );
             // Ordering
             $form['settings']['order']['custom_search_blocks_' . $delta . '_order']['taxonomy' . $voc->vid] = array(
               '#title'  => t('Taxonomy') . ': ' . $voc->name,
