Index: handlers/apachesolr_views_handler_argument_optionwidget.inc
===================================================================
--- handlers/apachesolr_views_handler_argument_optionwidget.inc	(revision 1665)
+++ handlers/apachesolr_views_handler_argument_optionwidget.inc	(working copy)
@@ -13,11 +13,6 @@
    * instead of the nice title
    */
   function query() {
-    $field = $this->definition['cck_field'];
-    
-    foreach (content_allowed_values(content_fields($field['field_name'])) as $allowed_value => $nice_text) {
-      $options[$allowed_value] = strtolower(str_replace(' ', '-', $nice_text));
-    }
     if (!empty($this->options['break_phrase'])) {
       $arguments = explode(',', $this->get_value());
     }
@@ -25,19 +20,7 @@
       $arguments = array($this->get_value());
     }
     
-    // time to set the arguments to something new
-    $new_arguments = array();
-    foreach ($arguments as $value) {
-      $key = array_search($value, $options);
-      if (!empty($key)) {
-        $new_arguments[] = $key;
-      }
-      else {
-        // TODO: do we need to do something here?
-      }
-    }
-    
-     foreach ($new_arguments as $facet_value) {
+    foreach ($arguments as $facet_value) {
       $this->query->add_filter($this->real_field, apachesolr_views_query::escape_term($facet_value));
     }
   }
@@ -55,5 +38,33 @@
     }
     return check_plain($this->argument);
   }
+  
+   /**
+   * Validate this argument against the allowed values list.
+   */
+  function validate_argument_basic($arg) {
+    $options = array();
+    $field = $this->definition['cck_field'];
+    $allowed_values = content_allowed_values(content_fields($field['field_name']));
+    foreach ($allowed_values as $allowed_value => $nice_text) {
+      $options[$allowed_value] = strtolower(str_replace(' ', '-', $nice_text));
+    }
+    
+    if (!empty($this->options['break_phrase'])) {
+      $arguments = explode(',', $arg);
+    }
+    else {
+      $arguments = array($arg);
+    }
+    
+    // check all the arguments validate
+    foreach ($arguments as $value) {
+      if (!array_key_exists($value, $options)) {
+        return FALSE;
+      }
+    }
+    
+    return parent::validate_argument_basic($arg); 
+  }
 
 }
\ No newline at end of file
