diff --git a/js/marker.js b/js/marker.js
index fa3cba5bbc0fc02f2b7429638ab75c25b66934e8..1f58e06c9e4405e34201d76063c86f830f19a521 100644
--- a/js/marker.js
+++ b/js/marker.js
@@ -10,7 +10,7 @@
 Drupal.gmap.addHandler('gmap', function (elem) {
   var obj = this;
 
-  var infowindow = null;
+  var infowindow = new google.maps.InfoWindow();
 
   obj.bind('init', function () {
     if (obj.vars.behavior.autozoom) {
@@ -69,7 +69,6 @@ Drupal.gmap.addHandler('gmap', function (elem) {
     if (infowindow != null){
       infowindow.close();
     }
-    infowindow = new google.maps.InfoWindow();
     if (marker.text) {
 	  infowindow.setContent(marker.text);
       infowindow.open(obj.map, marker.marker);
@@ -154,5 +153,9 @@ Drupal.gmap.addHandler('gmap', function (elem) {
     }
   });
 
+  Drupal.gmap.getInfoWindow = function() {
+    return infowindow;
+  };
+
   // @@@ TODO: Some sort of bounds handling for deletemarker? We'd have to walk the whole thing to figure out the new bounds...
 });