diff --git a/leaflet.formatters.inc b/leaflet.formatters.inc
index 71ae952..dbebd05 100644
--- a/leaflet.formatters.inc
+++ b/leaflet.formatters.inc
@@ -300,6 +300,29 @@ function leaflet_process_geofield($items = array()) {
         $data[] = $datum;
         break;
       case 'multipolygon':
+        $geom = geoPHP::load($item['wkt'], 'wkt');
+        if ($item['geo_type'] == 'multipolygon') {
+          $tmp = $geom->getComponents();
+          foreach ($tmp as $delta => $polygon) {
+            $polygon_component = $polygon->getComponents();
+            foreach ($polygon_component as $delta => $linestring) {
+              $components[] = $linestring; 
+            }
+          }
+        }
+        foreach ($components as $key => $component) {
+          $subcomponents = $component->getComponents();
+          foreach ($subcomponents as $subcomponent) {
+            $datum['component'][$key]['points'][] = array(
+              'lat' => $subcomponent->getY(),
+              'lon' => $subcomponent->getX(),
+            );
+          }
+          unset($subcomponent);
+        }
+
+        $data[] = $datum;
+        break;
       case 'multipolyline':
         $geom = geoPHP::load($item['wkt'], 'wkt');
 
