diff --git a/contrib/search_api_views/includes/handler_filter.inc b/contrib/search_api_views/includes/handler_filter.inc
index a1a17a1..0eb540e 100644
--- a/contrib/search_api_views/includes/handler_filter.inc
+++ b/contrib/search_api_views/includes/handler_filter.inc
@@ -59,11 +59,30 @@ class SearchApiViewsHandlerFilter extends views_handler_filter {
    * Add this filter to the query.
    */
   public function query() {
+
+    // Take care of Views' nested conjunction groups
+    $filter_groups = $this->view->display_handler->get_option('filter_groups');
+    $filters = &$this->query->getFilter()->getFilters();
+    if (!isset($filters[0])) {
+
+      // Create extrea first level filter with base conjunction
+      // (Views' "operator"). This avoids overriding the Search API
+      // base conjunction
+      $new_base_filter = $this->query->createFilter($filter_groups['operator']);
+      $this->query->filter($new_base_filter);
+
+      // Walk through Views' nested conjunction groups and add them
+      foreach ($filter_groups['groups'] as $key => $conjunction) {
+        $filter = $this->query->createFilter($conjunction);
+        $filters[0]->filter($filter);
+      }
+    }
+
     while (is_array($this->value)) {
       $this->value = $this->value ? array_shift($this->value) : NULL;
     }
     if ($this->value) {
-      $this->query->condition($this->real_field, $this->value, $this->operator);
+      $this->query->condition($this->real_field, $this->value, $this->operator, $this->options['group']);
     }
   }
 
diff --git a/contrib/search_api_views/includes/query.inc b/contrib/search_api_views/includes/query.inc
index 62a60f9..c63b1be 100644
--- a/contrib/search_api_views/includes/query.inc
+++ b/contrib/search_api_views/includes/query.inc
@@ -321,9 +321,9 @@ class SearchApiViewsQuery extends views_plugin_query {
     return $this;
   }
 
-  public function condition($field, $value, $operator = '=') {
+  public function condition($field, $value, $operator = '=', $group = NULL) {
     if (!$this->errors) {
-      $this->query->condition($field, $value, $operator);
+      $this->query->condition($field, $value, $operator, $group);
     }
     return $this;
   }
diff --git a/includes/query.inc b/includes/query.inc
index d43e8aa..2dd31aa 100644
--- a/includes/query.inc
+++ b/includes/query.inc
@@ -120,11 +120,14 @@ interface SearchApiQueryInterface {
    *   respectively.
    *   If $value is NULL, $operator also can only be "=" or "<>", meaning the
    *   field must have no or some value, respectively.
+   * @param $group
+   *   The integer value that indicates a nested conjunction group level.
+   *   Currently only used for Views' filter groups.
    *
    * @return SearchApiQueryInterface
    *   The called object.
    */
-  public function condition($field, $value, $operator = '=');
+  public function condition($field, $value, $operator = '=', $group = NULL);
 
   /**
    * Add a sort directive to this search query. If no sort is manually set, the
@@ -566,12 +569,15 @@ class SearchApiQuery implements SearchApiQueryInterface {
    *   respectively.
    *   If $value is NULL, $operator also can only be "=" or "<>", meaning the
    *   field must have no or some value, respectively.
+   * @param $group
+   *   The integer value that indicates a nested conjunction group level.
+   *   Currently only used for Views' filter groups.
    *
    * @return SearchApiQuery
    *   The called object.
    */
-  public function condition($field, $value, $operator = '=') {
-    $this->filter->condition($field, $value, $operator);
+  public function condition($field, $value, $operator = '=', $group = NULL) {
+    $this->filter->condition($field, $value, $operator, $group);
     return $this;
   }
 
@@ -921,11 +927,14 @@ interface SearchApiQueryFilterInterface {
    *   respectively.
    *   If $value is NULL, $operator also can only be "=" or "<>", meaning the
    *   field must have no or some value, respectively.
+   * @param $group
+   *   The integer value that indicates a nested conjunction group level.
+   *   Currently only used for Views' filter groups.
    *
    * @return SearchApiQueryFilterInterface
    *   The called object.
    */
-  public function condition($field, $value, $operator = '=');
+  public function condition($field, $value, $operator = '=', $group = NULL);
 
   /**
    * @return
@@ -1012,12 +1021,21 @@ class SearchApiQueryFilter implements SearchApiQueryFilterInterface {
    *   respectively.
    *   If $value is NULL, $operator also can only be "=" or "<>", meaning the
    *   field must have no or some value, respectively.
+   * @param $group
+   *   The integer value that indicates a nested conjunction group level.
+   *   Currently only used for Views' filter groups.
    *
    * @return SearchApiQueryFilter
    *   The called object.
    */
-  public function condition($field, $value, $operator = '=') {
-    $this->filters[] = array($field, $value, $operator);
+  public function condition($field, $value, $operator = '=', $group = NULL) {
+    $filter = array($field, $value, $operator);
+    if (is_numeric($group)) {
+      $this->filters[0]->filters[$group]->filters[] = $filter;
+    }
+    else {
+      $this->filters[] = $filter;
+    }
     return $this;
   }
 
