diff -urp openlayersOLD/modules/openlayers_behaviors/includes/openlayers_behaviors.behaviors.inc openlayers/modules/openlayers_behaviors/includes/openlayers_behaviors.behaviors.inc
--- openlayersOLD/modules/openlayers_behaviors/includes/openlayers_behaviors.behaviors.inc	2009-12-03 10:08:57.000000000 +1100
+++ openlayers/modules/openlayers_behaviors/includes/openlayers_behaviors.behaviors.inc	2009-12-07 16:23:00.909737628 +1100
@@ -222,3 +222,21 @@ function openlayers_behaviors_process_cl
 
   return FALSE;
 }
+
+/**
+ * Callback for OpenLayers Behaviors (Zoom to Cluster)
+ *
+ * @param $behavior
+ *   Data about behavior
+ * @param $map
+ *   Map array
+ * @return
+ *   Behavior array
+ */
+function openlayers_behaviors_process_zoom_to_cluster($behavior, &$map) {
+  if ($behavior['layer'] && $map['layers'][$behavior['layer']]) {
+    return $behavior;
+  }
+
+  return FALSE;
+}
diff -urp openlayersOLD/modules/openlayers_behaviors/js/openlayers_behaviors.behaviors.js openlayers/modules/openlayers_behaviors/js/openlayers_behaviors.behaviors.js
--- openlayersOLD/modules/openlayers_behaviors/js/openlayers_behaviors.behaviors.js	2009-10-29 06:26:25.000000000 +1100
+++ openlayers/modules/openlayers_behaviors/js/openlayers_behaviors.behaviors.js	2009-12-07 16:23:32.549737343 +1100
@@ -908,3 +908,44 @@ OL.EventHandlers.declutterZoomEnd = func
     }
   }
 }
+
+/**
+ * OL Zoom to Cluster Behavior
+ *
+ * @param event
+ *   Event Object
+ */
+OL.Behaviors.zoomToCluster = function(event) {
+  var mapDef = event.mapDef;
+  var mapid = mapDef.id;
+  var map = event.map;
+  var behavior = event.behavior;
+  var layers = Array();
+  
+  // Set up the hover triggers
+  for (layer in OL.maps[mapid].map.layers) {
+    if (OL.maps[mapid].map.layers[layer].drupalData.type == 'Vector') {
+      // have to use push so it stores the reference instead of value
+      layers.push(OL.maps[mapid].map.layers[layer]);
+    }
+  }
+
+  var selectControlOptions = {
+    onSelect: OL.Behaviors.clusterFeatureSelected,
+  };
+
+  OL.maps[mapid].controls[behavior.id] = new OpenLayers.Control.SelectFeature(layers, selectControlOptions);
+  // Add control
+  map.addControl(OL.maps[mapid].controls[behavior.id]);
+  OL.maps[mapid].controls[behavior.id].activate();
+}
+
+/**
+ * OL Zoom to Cluster Behavior - Feature Clicked Handler
+ *
+ * @param feature
+ *   Feature Object
+ */
+OL.Behaviors.clusterFeatureSelected = function(feature) {
+  // Zoom to feature within cluster
+}
diff -urp openlayersOLD/modules/openlayers_behaviors/openlayers_behaviors.module openlayers/modules/openlayers_behaviors/openlayers_behaviors.module
--- openlayersOLD/modules/openlayers_behaviors/openlayers_behaviors.module	2009-09-25 05:28:08.000000000 +1000
+++ openlayers/modules/openlayers_behaviors/openlayers_behaviors.module	2009-12-07 16:22:16.834736373 +1100
@@ -111,6 +111,14 @@ function openlayers_behaviors_openlayers
     'js_file' => $js_file,
     'js_callback' => 'popup',
   );
+  $info['openlayers_behaviors_zoom_to_cluster'] = array(
+    'name' => t('Zoom to Cluster'),
+    'description' => t('When the user clicks a cluster, zoom to the cluster\'s features'),
+    'file' => $file,
+    'callback' => 'openlayers_behaviors_process_zoom_to_cluster',
+    'js_file' => $js_file,
+    'js_callback' => 'zoomToCluster',
+  );
 
   return $info;
 }
