diff --git a/js/gmap.js b/js/gmap.js
index 952958623effbd00576dc6b7e400670d78f6403d..470da5c9644964758be192bd9e7b4a11c10944b5 100755
--- a/js/gmap.js
+++ b/js/gmap.js
@@ -208,6 +208,23 @@ Drupal.gmap.addHandler('gmap', function (elem) {
     obj.map.panTo(new GLatLng(obj.vars.latitude, obj.vars.longitude));
   });
 
+  // Respond to incoming recenter commands.
+  _ib.recenter = obj.bind("recenter", function (vars) {
+    if (vars) {
+      if (vars.bounds) {
+        obj.vars.latitude = vars.bounds.getCenter().lat();
+        obj.vars.longitude = vars.bounds.getCenter().lng();
+        obj.vars.zoom = obj.map.getBoundsZoomLevel(vars.bounds);
+      }
+      else {
+        obj.vars.latitude = vars.latitude;
+        obj.vars.longitude = vars.longitude;
+        obj.vars.zoom = vars.zoom;
+      }
+    }
+    obj.map.setCenter(new GLatLng(obj.vars.latitude, obj.vars.longitude), obj.vars.zoom);
+  });
+
   // Respond to incoming map type changes
   _ib.mtc = obj.bind("maptypechange", function () {
     var i;