diff --git a/modules/overlay/overlay-child.js b/modules/overlay/overlay-child.js
index 4ff6cf0..f3c8118 100644
--- a/modules/overlay/overlay-child.js
+++ b/modules/overlay/overlay-child.js
@@ -115,6 +115,29 @@ Drupal.overlayChild.behaviors.parseForms = function (context, settings) {
   $('form', context).once('overlay', function () {
     // Obtain the action attribute of the form.
     var action = $(this).attr('action');
+    // Special handling for method=get forms, which will break out of the
+    // overlay entirely if we let them submit by themselves.
+    if ($(this).attr('method') === 'get') {
+      $(this).bind('submit.overlay', function (event) {
+        // Redirect the parent window to the new overlay-ready URL.
+        event.preventDefault();
+        parent.Drupal.overlay.redirect(getFormActionFragmentized($(event.target)));
+      });
+      // Remove the original inline click handler of views reset buttons, which
+      // would actually submit the form.
+      $('.views-reset-button input').removeAttr("onclick");
+      // Add a new click handler which just uses the redirect function instead of
+      // actually submitting the form.
+      $('.views-reset-button input').click(function () {
+        $(this.form).find(':input').each(function () {
+          if (this.type=='text' || this.type=='select-multiple' || this.type=='select') {
+            $(this).val('');
+            this.setAttribute('value','');
+          }
+        });
+        parent.Drupal.overlay.redirect(getFormActionFragmentized($(this.form)));
+      });
+    }
     // Keep internal forms in the overlay.
     if (action == undefined || (action.indexOf('http') != 0 && action.indexOf('https') != 0)) {
       action += (action.indexOf('?') > -1 ? '&' : '?') + 'render=overlay';
@@ -125,6 +148,16 @@ Drupal.overlayChild.behaviors.parseForms = function (context, settings) {
       $(this).attr('target', '_new');
     }
   });
+
+  function getFormActionFragmentized($form) {
+    // Determine the URL this form would submit to if left to its own
+    // devices.
+    var newHref = $form.attr('action') + "&" + $form.formSerialize();
+    // Make that URL overlay-ready (i.e. "fragmentize" it).
+    // First, create a native link object for fragmentizeLink() to act on.
+    var link = jQuery('<a href="' + newHref + '"></a>').get(0);
+    return parent.Drupal.overlay.fragmentizeLink(link);
+  }
 };
 
 /**
