diff --git a/contrib/search_api_facetapi/plugins/facetapi/query_type_date.inc b/contrib/search_api_facetapi/plugins/facetapi/query_type_date.inc
index ab3002c..9ae5980 100644
--- a/contrib/search_api_facetapi/plugins/facetapi/query_type_date.inc
+++ b/contrib/search_api_facetapi/plugins/facetapi/query_type_date.inc
@@ -43,12 +43,34 @@ class SearchApiFacetapiDate extends SearchApiFacetapiTerm implements FacetapiQue
       $options['search_api_facets'][$this->facet['name']]['limit'] = -1;
     }
 
-    if ($active = $this->adapter->getActiveItems($this->facet)) {
-      $item = end($active);
+    $settings = $this->adapter->getFacet($this->facet)->getSettings();
+    // Adds the operator parameter.
+    $operator = $settings->settings['operator'];
+
+    $active = $this->adapter->getActiveItems($this->facet);
+    if (empty($active)) {
+      return;
+    }
+
+    if (FACETAPI_OPERATOR_OR == $operator || count($active) > 1) {
+      // If we're dealing with an OR facet, we need to use a nested filter.
+      $facet_filter = $query->createFilter('OR');
+    }
+    else {
+      // Otherwise we set the conditions directly on the query.
+      $facet_filter = $query;
+    }
+
+    foreach ($active as $filter => $item) {
       $field = $this->facet['field'];
       $regex = str_replace(array('^', '$'), '', FACETAPI_REGEX_DATE);
       $filter = preg_replace_callback($regex, array($this, 'replaceDateString'), $item['value']);
-      $this->addFacetFilter($query, $field, $filter);
+      $this->addFacetFilter($facet_filter, $field, $filter);
+    }
+
+    // For OR facets, we now have to add the filter to the query.
+    if (FACETAPI_OPERATOR_OR == $operator) {
+      $query->filter($facet_filter);
     }
   }
 
