diff --git a/facetapi_slider.js b/facetapi_slider.js
index e7ae0e2..5ffc1b7 100644
--- a/facetapi_slider.js
+++ b/facetapi_slider.js
@@ -24,19 +24,33 @@ Drupal.facetapi_slider = {};
  * Applies the slider to a form.
  */
 Drupal.facetapi_slider.makeSlider = function($form, settings) {
-  var $wrapper = $( '<div id="slider-' + settings.id + '"><span class="facetapi-slider-min"></span><span class="facetapi-slider-max" style="float: right;"></span><div class="facetapi-slider"></div></div>' ).insertAfter( $form );
+  var $wrapper = $( '<div id="slider-' + settings.id + '">\n\
+    <span class="facetapi-slider-min"></span>\n\
+    <span class="facetapi-slider-max" style="float: right;"></span>\n\
+    <div class="facetapi-slider"></div></div>' ).insertAfter( $form );
 
   $wrapper.children('.facetapi-slider').slider({
     range: true,
     min: parseFloat(settings.sliderMin),
     max: parseFloat(settings.sliderMax),
     step: settings.sliderStep,
-    values: [settings.sliderMin, settings.sliderMax],
+    values: [settings.sliderMinHandle, settings.sliderMaxHandle],
     slide: function (event, ui) {
       $form.find('input.facetapi-slider-min').val(ui.values[0]);
       $form.find('input.facetapi-slider-max').val(ui.values[1]);
+      
+      // Calculate the position of the slider handles
+      var $real_width = $wrapper.children('.facetapi-slider').width();
+      var $range = settings.sliderMax - settings.sliderMin;
+      var $real_left = ui.values[0] - settings.sliderMin;
+      var $real_right = settings.sliderMax - ui.values[1];
+      var $real_left_position = ($real_width/$range)*$real_left-3;
+      var $real_right_position = ($real_width/$range)*$real_right-3;
+      // Set the handles with text and position
       $wrapper.children('.facetapi-slider-min').text(ui.values[0]);
+      $wrapper.children('.facetapi-slider-min').css("margin-left", $real_left_position+"px");
       $wrapper.children('.facetapi-slider-max').text(ui.values[1]);
+      $wrapper.children('.facetapi-slider-max').css("margin-right", $real_right_position+"px");
     },
     stop: function(event, ui) {
       $form.submit();
diff --git a/facetapi_slider.module b/facetapi_slider.module
index 6277619..91c999d 100644
--- a/facetapi_slider.module
+++ b/facetapi_slider.module
@@ -38,7 +38,7 @@ function facetapi_slider_facetapi_widgets() {
         'query type' => 'numeric_range',
         'requirements' => array(
           'facetapi_requirement_facet_property' => array(
-            'query type' => 'numeric_range',
+            'query types' => 'numeric_range',
           ),
         ),
       ),
diff --git a/plugins/facetapi/widget_slider.inc b/plugins/facetapi/widget_slider.inc
index d9f3b92..7fd2bc6 100644
--- a/plugins/facetapi/widget_slider.inc
+++ b/plugins/facetapi/widget_slider.inc
@@ -28,11 +28,44 @@ class FacetapiWidgetSlider extends FacetapiWidget {
     $this->key = $this->build['#facet']['name'];
     $facet = $this->facet->getFacet();
     $build = $this->facet->getBuild();
+    $adapter = $this->build['#adapter'];
+
+    // Get our searched values from the active item
+    if(isset($facet)) {
+      $searched_values = $adapter->getActiveItems($facet);
+      if(!empty($searched_values)) {
+        $searched_values = reset($searched_values);
+        $values = $searched_values['value'];
+        // Remove the two brackets
+        $values = str_replace('[', '', $values);
+        $values = str_replace(']', '', $values);
+        $values = explode(' TO ', $values);
+        $slider_min_handle = $values[0];
+        $slider_max_handle = $values[1];
+        if($slider_min_handle == $slider_max_handle) {
+          return FALSE;
+        }
+      }
+    }
+
     $slider = reset($build);
     $slider_min = $slider['#range_min'];
     $slider_max = $slider['#range_max'];
+    if($slider_min == $slider_max) {
+      // Remove the slider because no results can be given
+      $this->build[$this->facet['field alias']] = NULL;
+      return;
+    }
     $this->jsSettings['sliderMin'] = $slider_min;
     $this->jsSettings['sliderMax'] = $slider_max;
+    if(isset($slider_min_handle) && isset($slider_max_handle)) {
+      $this->jsSettings['sliderMinHandle'] = $slider_min_handle;
+      $this->jsSettings['sliderMaxHandle'] = $slider_max_handle;
+    }
+    else {
+      $this->jsSettings['sliderMinHandle'] = $slider_min;
+      $this->jsSettings['sliderMaxHandle'] = $slider_max;
+    }
 
     if ($slider_max - $slider_min < 20) {
       $this->jsSettings['sliderStep'] = ($slider_max - $slider_min) / 20;
@@ -40,14 +73,13 @@ class FacetapiWidgetSlider extends FacetapiWidget {
     else {
       $this->jsSettings['sliderStep'] = 1;
     }
-
-    $this->build[$this->facet['field alias']] = drupal_get_form('facetapi_slider_widget_form_' . $this->facet['field alias'], $this->build['#adapter'], $this->build);
+    $this->build[$this->facet['field alias']] = drupal_get_form('facetapi_slider_widget_form_' . $this->facet['field alias'], $adapter, $this->build);
   }
 
   /**
    * Form builder function for the facet block.
    */
-  public static function widgetForm($form, $form_state, $form_id, $adapter, $build = array()) {
+  public static function widgetForm($form, $form_state, $form_id, FacetapiAdapter $adapter, $build = array()) {
     $slider = array();
     if (isset($build['#facet']) && isset($build[$build['#facet']['field alias']]) && isset($build[$build['#facet']['field alias']][$build['#facet']['field']])) {
       $slider = $build[$build['#facet']['field alias']][$build['#facet']['field']];
