diff --git a/sites/all/modules/contrib/extractor/extractor.install b/sites/all/modules/contrib/extractor/extractor.install
index df5c643..4e1d4ec 100644
--- a/sites/all/modules/contrib/extractor/extractor.install
+++ b/sites/all/modules/contrib/extractor/extractor.install
@@ -34,6 +34,7 @@ function extractor_install() {
  */
 function extractor_uninstall() {
   drupal_uninstall_schema('extractor');
+  variable_del('extractor_extract_term_synonyms');
 }
 
 /**
diff --git a/sites/all/modules/contrib/extractor/extractor.module b/sites/all/modules/contrib/extractor/extractor.module
index 12f1e83..eff607b 100644
--- a/sites/all/modules/contrib/extractor/extractor.module
+++ b/sites/all/modules/contrib/extractor/extractor.module
@@ -69,6 +69,12 @@ function extractor_form_taxonomy_form_vocabulary_alter(&$form, &$form_state) {
     '#description' => t('If checked new posts containing terms of this vocabulary will be automatically tagged with them. You can alternatively pick single terms for extraction on term forms.'),
     '#default_value' => $lookup,
   );
+  $form['extractor']['extractor_extract_term_synonyms'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Use synonyms for term extraction'),
+    '#default_value' => variable_get('extractor_extract_term_synonyms', false),
+    '#disabled' => $disabled,
+  );
   $form['#submit'][] = 'extractor_form_vocabulary_submit';
 }
 
@@ -83,6 +89,7 @@ function extractor_form_vocabulary_submit($form, &$form_state) {
     $id = strpos($form_state['values']['module'], 'features_') === 0 ? $form_state['values']['module'] : $form_state['values']['vid'];
     $vocabularies[$id] = TRUE;
   }
+  variable_set('extractor_extract_term_synonyms', $form_state['values']['extractor_extract_term_synonyms']);
   variable_set('extractor_simple_vocabularies', $vocabularies);
 }
 
diff --git a/sites/all/modules/contrib/extractor/libraries/extractor_simple.inc b/sites/all/modules/contrib/extractor/libraries/extractor_simple.inc
index 4c185b0..dcca236 100644
--- a/sites/all/modules/contrib/extractor/libraries/extractor_simple.inc
+++ b/sites/all/modules/contrib/extractor/libraries/extractor_simple.inc
@@ -94,7 +94,7 @@ function _extractor_simple_lookup($word) {
     }
   }
   if (!$loaded) {
-    if (empty($vid)) {
+    if (empty($vids)) {
       $result = db_query_range("SELECT td.tid, td.name FROM {term_data} td JOIN {extractor_lookup} e ON td.tid = e.tid", 0, 2000);
     }
     else {
@@ -102,6 +102,14 @@ function _extractor_simple_lookup($word) {
     }
     while ($term = db_fetch_object($result)) {
       $term_cache[strtolower($term->name[0])][$term->name] = $term;
+      if (variable_get('extractor_extract_term_synonyms', false) && $synonyms = taxonomy_get_synonyms($term->tid)) {
+        foreach ($synonyms as $syn) {
+          $term_syn = new stdClass();
+          $term_syn->tid = $term->tid;
+          $term_syn->name = $syn;
+          $term_cache[strtolower($term->name[0])][$syn] = $term_syn;
+        }
+      }
     }
     $loaded = TRUE;
   }
