--- Clusterer2.js.ORIGINAL	2008-12-02 12:30:23.000000000 +1100
+++ Clusterer2.js	2008-12-02 12:30:04.000000000 +1100
@@ -380,35 +380,29 @@ Clusterer.Display = function ( clusterer
     };
 
 
-Clusterer.PopUp = function ( cluster )
-    {
-    var clusterer = cluster.clusterer;
-    var html = '<table width="300">';
-    var n = 0;
-    for ( var i = 0; i < cluster.markers.length; ++i )
-	{
-	var marker = cluster.markers[i];
-	if ( marker != null )
-	    {
-	    ++n;
-	    html += '<tr><td>';
-	    if ( marker.getIcon().smallImage != null )
-		html += '<img src="' + marker.getIcon().smallImage + '">';
-	    else
-		html += '<img src="' + marker.getIcon().image + '" width="' + ( marker.getIcon().iconSize.width / 2 ) + '" height="' + ( marker.getIcon().iconSize.height / 2 ) + '">';
-	    html += '</td><td>' + marker.title + '</td></tr>';
-	    if ( n == clusterer.maxLinesPerInfoBox - 1 && cluster.markerCount > clusterer.maxLinesPerInfoBox  )
-		{
-		html += '<tr><td colspan="2">...and ' + ( cluster.markerCount - n ) + ' more</td></tr>';
-		break;
-		}
-	    }
-	}
-    html += '</table>';
-    clusterer.map.closeInfoWindow();
-    cluster.marker.openInfoWindowHtml( html );
-    clusterer.poppedUpCluster = cluster;
-    };
+// Alternate popup code from: http://drupal.org/node/155104#comment-574696
+Clusterer.PopUp = function ( cluster ) {
+  var clusterer = cluster.clusterer;
+  
+  var bounds = new GLatLngBounds();
+  for (var k in cluster.markers)
+    bounds.extend(cluster.markers[k].getPoint());
+  
+  var sw = bounds.getSouthWest();
+  var ne = bounds.getNorthEast();
+  var rect = [
+    sw,
+    new GLatLng(sw.lat(), ne.lng()),
+    ne,
+    new GLatLng(ne.lat(), sw.lng()),
+    sw
+  ];
+  
+  var center = bounds.getCenter();
+  var zoom = clusterer.map.getBoundsZoomLevel(bounds);
+  
+  clusterer.map.setCenter(new GLatLng(+center.lat(),+center.lng()),+zoom);
+};
 
 
 Clusterer.RePop = function ( clusterer )
