diff --git a/apachesolr_search.pages.inc b/apachesolr_search.pages.inc
index f462e08..fb026fc 100644
--- a/apachesolr_search.pages.inc
+++ b/apachesolr_search.pages.inc
@@ -104,16 +104,21 @@ function apachesolr_search_custom_page_search_form_submit(&$form, &$form_state)
   if (strlen($form_state['values']['keys'])) {
     $redirect .= '/' . $redirect_value;
   }
+
+  $get = array();
   if (isset($form_state['values']['get'])) {
     $get = json_decode($form_state['values']['get'], TRUE);
   }
+
   if (!empty($form_state['values']['retain-filters'])) {
     // Add our saved values
     $get['retain-filters'] = '1';
   }
   else {
-    $get = array();
+    // Remove all filters but keep protected query parameters
+    $get = array_intersect_key($get, array_flip(variable_get('apachesolr_search_protected_query_parameters', array())));
   }
+
   // Add the query values into the redirect.
   $form_state['redirect'] = array($redirect, array('query' => $get));
 }
