diff --git a/handlers/views_handler_filter_in_operator.inc b/handlers/views_handler_filter_in_operator.inc
index 429a937..216dca0 100644
--- a/handlers/views_handler_filter_in_operator.inc
+++ b/handlers/views_handler_filter_in_operator.inc
@@ -368,4 +368,29 @@ class views_handler_filter_in_operator extends views_handler_filter {
 
     $this->query->add_where($this->options['group'], "$field $operator");
   }
+
+  function validate() {
+    $this->get_value_options();
+    $errors = array();
+    if (!in_array($this->operator, $this->operator_values(1))) {
+      $errors[] = t('The operator is invalud');
+    }
+    if (is_array($this->value)) {
+      // Remove every element which is not known.
+      foreach ($this->value as $value) {
+        if (!isset($this->value_options[$value])) {
+          unset($this->value[$value]);
+        }
+      }
+      // Choose different kind of ouput for 0, a single and multiple values.
+      if (count($this->value) == 0) {
+        $errors[] = t('No valid values found.');
+      }
+    }
+    else {
+      ctools_include('export');
+      $errors[] = t('The value @value is not an array', array('@value' => ctools_var_export($value)));
+    }
+    return $errors;
+  }
 }
