diff --git a/contrib/search_api_views/includes/handler_argument.inc b/contrib/search_api_views/includes/handler_argument.inc
index 0c9344e..2976a5c 100644
--- a/contrib/search_api_views/includes/handler_argument.inc
+++ b/contrib/search_api_views/includes/handler_argument.inc
@@ -63,6 +63,26 @@ class SearchApiViewsHandlerArgument extends views_handler_argument {
       return $defaults;
     }
   }
+  public function option_definition() {
+    $options = parent::option_definition();
+
+    $options['break_phrase'] = array('default' => FALSE);
+
+    return $options;
+  }
+
+  public function options_form(&$form, &$form_state) {
+    parent::options_form($form, $form_state);
+
+    // Allow passing multiple values.
+    $form['break_phrase'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Allow multiple values'),
+      '#description' => t('If selected, users can enter multiple values in the form of 1+2+3 (for OR) or 1,2,3 (for AND).'),
+      '#default_value' => $this->options['break_phrase'],
+      '#fieldset' => 'more',
+    );
+  }
 
   /**
    * Set up the query for this argument.
@@ -71,7 +91,26 @@ class SearchApiViewsHandlerArgument extends views_handler_argument {
    */
   // @todo Provide options to select the operator, instead of always using '='?
   public function query($group_by = FALSE) {
-    $this->query->condition($this->real_field, $this->argument);
+    if (!empty($this->options['break_phrase'])) {
+      views_break_phrase($this->argument, $this);
+    }
+    else {
+      $this->value = array($this->argument);
+    }
+
+    if (count($this->value) > 1) {
+      $filter = $this->query->createFilter(drupal_strtoupper($this->operator));
+      // $filter will be NULL if there were errors in the query.
+      if ($filter) {
+        foreach ($this->value as $value) {
+          $filter->condition($this->real_field, $value, '=');
+        }
+        $this->query->filter($filter);
+      }
+    }
+    else {
+      $this->query->condition($this->real_field, reset($this->value));
+    }
   }
 
   /**
diff --git a/contrib/search_api_views/includes/handler_argument_more_like_this.inc b/contrib/search_api_views/includes/handler_argument_more_like_this.inc
index be73ab0..57c0048 100644
--- a/contrib/search_api_views/includes/handler_argument_more_like_this.inc
+++ b/contrib/search_api_views/includes/handler_argument_more_like_this.inc
@@ -11,6 +11,7 @@ class SearchApiViewsHandlerArgumentMoreLikeThis extends SearchApiViewsHandlerArg
    */
   public function option_definition() {
     $options = parent::option_definition();
+    unset($options['break_phrase']);
     $options['fields'] = array('default' => array());
     return $options;
   }
@@ -20,6 +21,7 @@ class SearchApiViewsHandlerArgumentMoreLikeThis extends SearchApiViewsHandlerArg
    */
   public function options_form(&$form, &$form_state) {
     parent::options_form($form, $form_state);
+    unset($form['break_phrase']);
 
     $index = search_api_index_load(substr($this->table, 17));
     if (!empty($index->options['fields'])) {
