diff --git a/leaflet.formatters.inc b/leaflet.formatters.inc
index 821250f..246659e 100644
--- a/leaflet.formatters.inc
+++ b/leaflet.formatters.inc
@@ -423,7 +423,22 @@ function leaflet_apply_map_settings(&$map, &$features, $map_settings, $entity_ty
       unset($feat['icon']['html']);
       unset($feat['icon']['html_class']);
     }
-
+    if ($map_settings['icon']['iconType'] == 'clusters') {
+      $feat['icon'] = $settings['icon'];
+      $map['settings']['maxZoom'] = intval($settings['zoom']['maxZoom']);
+      $map['settings']['minZoom'] = intval($settings['zoom']['minZoom']);
+      $map['settings']['zoom'] = intval($settings['zoom']['initialZoom']);
+      unset($feat['icon']['html']);
+      unset($feat['icon']['html_class']);
+      unset($feat['icon']['iconUrl']);
+      unset($feat['icon']['shadowUrl']);
+      unset($feat['icon']['iconSize']);
+      unset($feat['icon']['iconAnchor']);
+      unset($feat['icon']['shadowAnchor']);
+      unset($feat['icon']['popupAnchor']);
+      unset($feat['icon']['htmlClass']);
+      unset($feat['icon']['iconImageStyle']);
+    }
     // Apply vector display settings:
     if ($vector_settings) {
       if ($feat['type'] != 'point') {
@@ -556,6 +571,7 @@ function leaflet_form_elements($group, $settings, $options = NULL) {
         '#options' => array(
           'marker' => "Icon File",
           'html' => "Field (html DivIcon)",
+          'clusters' => "Marker Clusters"
         ),
       );
       $form_element['iconUrl'] = array(
@@ -631,6 +647,11 @@ function leaflet_form_elements($group, $settings, $options = NULL) {
         '#description' => "It is usually preferable to leave this blank and use the image style system to size the icons. Sizes are in pixels.",
         '#type' => 'fieldset',
         '#collapsible' => TRUE,
+        '#states' => array(
+          'invisible' => array(
+            ':input[name="' . $options['path'] . '[icon][iconType]"]' => array('value' => 'clusters'),
+          ),
+        ),
       );
       $form_element['iconSize']['x'] = array(
         '#title' => t('Width'),
@@ -653,6 +674,11 @@ function leaflet_form_elements($group, $settings, $options = NULL) {
         '#type' => 'fieldset',
         '#collapsible' => TRUE,
         '#description' => t("The coordinates of the 'tip' of the icon (relative to its top left corner). The icon will be aligned so that this point is at the marker's geographical location."),
+        '#states' => array(
+          'invisible' => array(
+            ':input[name="' . $options['path'] . '[icon][iconType]"]' => array('value' => 'clusters'),
+          ),
+        ),
       );
       $form_element['iconAnchor']['x'] = array(
         '#title' => t('X'),
