diff -ruN .views-unpatched/includes/ajax.inc views/includes/ajax.inc
--- .views-unpatched/includes/ajax.inc	2010-04-10 13:16:25.000000000 +1000
+++ views/includes/ajax.inc	2010-04-17 15:32:04.000000000 +1000
@@ -55,6 +55,9 @@
           $object->status = TRUE;
           $object->title = $view->get_title();
           $object->display .= $view->preview($display_id, $args);
+	  // Save settings
+	  $js = drupal_add_js(NULL, NULL, 'header');
+	  $object->settings = $js['setting'];
         }
         else {
           foreach ($errors as $error) {
diff -ruN .views-unpatched/js/ajax_view.js views/js/ajax_view.js
--- .views-unpatched/js/ajax_view.js	2010-04-10 13:16:25.000000000 +1000
+++ views/js/ajax_view.js	2010-04-17 15:33:12.000000000 +1000
@@ -34,6 +34,25 @@
     // Show any messages (but first remove old ones, if there are any).
     $view.find('.views-messages').remove().end().prepend(response.messages);
   }
+  if (response.settings)
+  {
+       var i = 0;
+       var gmap = {};
+
+       for (i = 0; i < response.settings.length; i++)
+               if ( typeof(response.settings[i]['gmap']) == 'object')
+                       gmap = response.settings[i]['gmap'];
+                              
+       $view.find('.gmap-map').each(function() {
+                        var id='#' + $(this).attr("id");
+                       var t=id.split('-');
+                       var mapid = t[1];
+                       Drupal.gmap.unloadMap(mapid);
+                       if (gmap && gmap[mapid])
+                               Drupal.settings.gmap[mapid]=gmap[mapid];
+                       $(id).empty().each(Drupal.gmap.setup);
+       });
+  }
 };
 
 /**
