diff --git autocomplete.inc autocomplete.inc
index 02453921..fa543f07 100644
--- autocomplete.inc
+++ autocomplete.inc
@@ -162,15 +162,12 @@ function _webform_edit_autocomplete($component) {
  */
 function _webform_autocomplete_admin_validate($form, &$form_state) {
   $extra = $form_state['values']['extra'];
-  if ($extra['autocomplete_restrict'] && !$extra['autocomplete_items']) {
-    form_error($form['validation']['autocomplete_restrict'], t('You have chosen to restrict submissions to listed options, but have not entered any options.'));
+  if ($extra['autocomplete_restrict'] && (!$extra['autocomplete_items'] && !$extra['autocomplete_taxonomy'])) {
+    form_error($form['validation']['autocomplete_restrict'], t('You have chosen to restrict submissions to listed options, but have not entered any options or a taxonomy.'));
   }
   if ($extra['autocomplete_restrict'] && $extra['autocomplete_existing']) {
     form_error($form['validation']['autocomplete_restrict'], t('You cannot choose both "Restrict to listed values" and "Autocomplete from existing submissions."'));
   }
-  if ($extra['autocomplete_restrict'] && $extra['autocomplete_taxonomy']) {
-    form_error($form['validation']['autocomplete_restrict'], t('You cannot choose both "Restrict to listed values" and "Autocomplete from existing taxonomy terms."'));
-  }
   if (!is_numeric($extra['autocomplete_result_count']) || $extra['autocomplete_result_count'] < 1) {
     form_error($form['display']['autocomplete_result_count'], t('You must choose to display at least one result'));
   }
@@ -181,7 +178,6 @@ function _webform_autocomplete_admin_validate($form, &$form_state) {
  */
 function _webform_render_autocomplete($component, $value = NULL, $filter = TRUE) {
   $node = isset($component['nid']) ? node_load($component['nid']) : NULL;
-
   $element = array(
     '#type' => 'textfield',
     '#title' => $filter ? webform_filter_xss($component['name']) : $component['name'],
@@ -212,7 +208,11 @@ function _webform_render_autocomplete($component, $value = NULL, $filter = TRUE)

   // Restrict to listed options.
   if ($component['extra']['autocomplete_restrict']) {
-    $element['#element_validate'][] = 'webform_autocomplete_validate_restricted';
+    if (strlen($component['extra']['autocomplete_taxonomy']) > 0 && $component['extra']['autocomplete_taxonomy'] != '0') {
+      $element['#element_validate'][] = 'webform_autocomplete_validate_restricted_taxonomy';
+    } else {
+      $element['#element_validate'][] = 'webform_autocomplete_validate_restricted';
+    }
   }

         WHERE nid = :nid AND cid = :cid AND data LIKE :str LIMIT " . ($result_count - $count),
diff --git webform_autocomplete.module webform_autocomplete.module
index 56fbce09..f3fa06c6 100644
--- webform_autocomplete.module
+++ webform_autocomplete.module
@@ -78,12 +78,29 @@ function webform_autocomplete_access($node, $cid) {
  * Validation callback for webform component.
  */
 function webform_autocomplete_validate_restricted($element, &$form_state) {
+
   $options = preg_split('/\r\n|\r|\n/', $element['#webform_component']['extra']['autocomplete_items']);
   if (!in_array($element['#value'], $options)) {
     form_error($element, t('Invalid choice for @field.', array('@field' => $element['#title'])));
   }
 }
+/**
+ * Validation callback for webform component.
+ */
+function webform_autocomplete_validate_restricted_taxonomy($element, &$form_state) {
+  $voc_name = $element['#webform_component']['extra']['autocomplete_taxonomy'];
+  $voc = taxonomy_vocabulary_machine_name_load($voc_name);
+  $terms = entity_load('taxonomy_term', FALSE, array('vid' => $voc->vid));

+  $term_options = array();
+  foreach ($terms as $id => $term) {
+    $term_options[] = $term->name;
+  }
+
+  if (!in_array($element['#value'], $term_options)) {
+    form_error($element, t('Invalid choice for @field.', array('@field' => $element['#title'])));
+  }
+}
 /**
  * Implements hook_form_builder_element_types().
  * @param string $form_type
