diff --git a/search_api_ranges.module b/search_api_ranges.module
index 8f3819e..b773b9f 100644
--- a/search_api_ranges.module
+++ b/search_api_ranges.module
@@ -133,8 +133,9 @@ function search_api_ranges_minmax($variables, $order = 'ASC') {
   foreach ($filters as $key => $filter) {
     // CHeck for array, old style filters are objects which we can skip
     if (is_array($filter)) {
-      if ($filter[0] == $variables['range_field']) {
-        unset($filters[$key]);
+      if ($filter[0] == $variables['range_field'] || ($filter[0] != $variables['range_field'] && $filter[2] == '<>')) {
+        $current_filter = $filters[$key];//save current filter to temporary variable
+		unset($filters[$key]);
       }
     }
   }
@@ -143,6 +144,19 @@ function search_api_ranges_minmax($variables, $order = 'ASC') {
 
   // Execute the query and process results
   $results = search_api_ranges_minmax_execute($query);
+   foreach ($filters as $key => $filter) {
+    // Remove $query->condition($variables['range_field'], NULL, '<>'); to prevent this condition influence on other facets
+    if (is_array($filter)) {
+      if ($filter[0] == $variables['range_field']  ) {
+        unset($filters[$key]);
+      }
+    }
+  }
+ if ($current_filter[1] != NULL && $current_filter[2] !='<>')//Return current filter with digital ranges to the query
+     $query->condition($variables['range_field'], $current_filter[1], $current_filter[2]);
+	 
+  if ($current_filter[1] != NULL && $current_filter[2] !='<>')
+     $query->condition($variables['range_field'], $current_filter[1], $current_filter[2]);
   if (!$results['results']) {
     return;
   }
