Index: views.module
===================================================================
--- views.module	(revision 319)
+++ views.module	(working copy)
@@ -1018,6 +1018,12 @@
   $form['#id'] = views_css_safe('views_exposed_form-' . check_plain($view->name) . '-' . check_plain($display->id));
 //  $form['#attributes']['class'] = array('views-exposed-form');
 
+  // Include a special parameter, so we can know for sure whether "Apply" was clicked.
+  $form['apply_filter'] = array(
+    '#type' => 'hidden',
+    '#value' => 'yes'
+  );
+
   // If using AJAX, we need the form plugin.
   if ($view->use_ajax) {
     drupal_add_js('misc/jquery.form.js');
Index: includes/view.inc
===================================================================
--- includes/view.inc	(revision 319)
+++ includes/view.inc	(working copy)
@@ -162,16 +162,18 @@
         }
       }
 
-      // If we have no input at all, check for remembered input via session.
+      if ($this->exposed_input['apply_filter']) {
+        unset($this->exposed_input['apply_filter']);
+      } else {
+        // The filter hasn't been modified, check for remembered input via session.
 
-      // If filters are not overridden, store the 'remember' settings on the
-      // default display. If they are, store them on this display. This way,
-      // multiple displays in the same view can share the same filters and
-      // remember settings.
-      $display_id = ($this->display_handler->is_defaulted('filters')) ? 'default' : $this->current_display;
-
-      if (empty($this->exposed_input) && !empty($_SESSION['views'][$this->name][$display_id])) {
-        $this->exposed_input = $_SESSION['views'][$this->name][$display_id];
+        // If filters are not overridden, store the 'remember' settings on the
+        // default display. If they are, store them on this display. This way,
+        // multiple displays in the same view can share the same filters and
+        // remember settings.
+        $display_id = ($this->display_handler->is_defaulted('filters')) ? 'default' : $this->current_display;
+        if (! empty($_SESSION['views'][$this->name][$display_id]))
+          $this->exposed_input = $_SESSION['views'][$this->name][$display_id];
       }
     }
 
