diff --git a/README.txt b/README.txt
index 3e424b1..31a9ad1 100644
--- a/README.txt
+++ b/README.txt
@@ -6,7 +6,7 @@ http://leaflet.cloudmade.com/download.html or Github,
 http://github.com/CloudMade/Leaflet.
 
 In its current state, maps can be rendered via the included field formatter for
-Geofield or by using the API directly.
+Geofield/Location CCK or by using the API directly.
 
 
 Installation
@@ -76,11 +76,11 @@ Views integration
 
 To render a map using Views, enable the module leaflet_views.
 
-You need to add at least one geofield to the Fields list, and select the Leaflet Map style
-in Format.
+You need to add at least one geofield or location field to the Fields list, and
+select the Leaflet Map style in Format.
 
-In the settings of the style, select the geofield as the Data Source and select a field for Title
-and Description (which will be rendered in the popup).
+In the settings of the style, select the geofield or location field as the Data Source
+and select a field for Title and Description (which will be rendered in the popup).
 
 As a more powerful alternative, you can use node view modes to be rendered in the popup.
 In the Description field, select "<entire node>" and then select a View mode.
diff --git a/leaflet.formatters.inc b/leaflet.formatters.inc
index e190e49..8dc0668 100644
--- a/leaflet.formatters.inc
+++ b/leaflet.formatters.inc
@@ -14,6 +14,14 @@ function leaflet_field_formatter_info() {
     );
   }
 
+  if (module_exists('location_cck')) {
+    $formatters['location_cck_leaflet'] = array(
+      'label' => t('Leaflet'),
+      'field types' => array('location'),
+      'settings' => array('leaflet_map' => '', 'icon' => '', 'height' => 400, 'popup' => 0),
+    );
+  }
+
   return $formatters;
 }
 
@@ -26,7 +34,7 @@ function leaflet_field_formatter_settings_form($field, $instance, $view_mode, $f
 
   $element = array();
 
-  if ($display['type'] == 'geofield_leaflet') {
+  if (in_array($display['type'], array('geofield_leaflet', 'location_cck_leaflet'))) {
     $options = array('' => t('-- Select --'));
     foreach (leaflet_map_get_info() as $key => $map) {
       $options[$key] = t($map['label']);
@@ -195,7 +203,7 @@ function leaflet_field_formatter_settings_summary($field, $instance, $view_mode)
 
   $summary = '';
 
-  if ($display['type'] == 'geofield_leaflet') {
+  if (in_array($display['type'], array('geofield_leaflet', 'location_cck_leaflet'))) {
     $summary = t('Leaflet map: @map', array('@map' => $settings['leaflet_map']));
   }
 
@@ -215,9 +223,15 @@ function leaflet_field_formatter_view($entity_type, $entity, $field, $instance,
   else {
     switch ($display['type']) {
       case 'geofield_leaflet':
+      case 'location_cck_leaflet':
         $map = leaflet_map_get_info($settings['leaflet_map']);
 
-        $features = leaflet_process_geofield($items);
+        if ($display['type'] == 'geofield') {
+          $features = leaflet_process_geofield($items);
+        }
+        elseif ($display['type'] == 'location_cck_leaflet') {
+          $features = leaflet_process_location($items);
+        }
 
         // if only a single feature, set the popup content to the entity title
         if ($settings['popup'] && count($items) == 1) {
@@ -325,3 +339,26 @@ function leaflet_process_geofield($items = array()) {
 
   return $data;
 }
+
+/**
+ * Convert a location field into an array of map points for consumption by the
+ * leaflet module as expected by leaflet_render_map().
+ *
+ * @param array $items
+ *   A collection of location field values.
+ *
+ * @return array
+ */
+function leaflet_process_location($items = array()) {
+  $data = array();
+  $points = array();
+  foreach ($items as $delta => $item) {
+    $datum = array('type' => 'point');
+    $datum += array(
+      'lat' => (float) $item['latitude'],
+      'lon' => (float) $item['longitude'],
+    );
+    $data[] = $datum;
+  }
+  return $data;
+}
diff --git a/leaflet_views/leaflet_views.info b/leaflet_views/leaflet_views.info
index 3f220d3..57ca5d7 100644
--- a/leaflet_views/leaflet_views.info
+++ b/leaflet_views/leaflet_views.info
@@ -2,7 +2,6 @@ name = Leaflet views
 description = Views integration for the Leaflet module.
 core = 7.x
 dependencies[] = leaflet
-dependencies[] = geofield
 dependencies[] = views
 dependencies[] = entity
 files[] = leaflet_views.views.inc
diff --git a/leaflet_views/leaflet_views_plugin_style.inc b/leaflet_views/leaflet_views_plugin_style.inc
index 6802bdf..458d1b0 100644
--- a/leaflet_views/leaflet_views_plugin_style.inc
+++ b/leaflet_views/leaflet_views_plugin_style.inc
@@ -50,8 +50,7 @@ class leaflet_views_plugin_style extends views_plugin_style {
     $fields_data = array();
     foreach ($handlers as $field_id => $handler) {
       $fields[$field_id] = $handler->ui_name();
-
-      if (!empty($handler->field_info['type']) && $handler->field_info['type'] == 'geofield') {
+      if (!empty($handler->field_info['type']) && in_array($handler->field_info['type'], array('geofield', 'location'))) {
         $fields_data[$field_id] = $handler->ui_name();
       }
     }
@@ -59,7 +58,7 @@ class leaflet_views_plugin_style extends views_plugin_style {
     // Check whether we have a geofield we can work with
     if (!count($fields_data)) {
       $form['error'] = array(
-        '#markup' => t('Please add at least one geofield to the view'),
+        '#markup' => t('Please add at least one geofield or location field to the view'),
       );
       return;
     }
@@ -303,12 +302,23 @@ class leaflet_views_plugin_style extends views_plugin_style {
     $data = array();
 
     if ($this->options['data_source']) {
+      $field_info = field_info_field($this->options['data_source']);
+      $field_type = $field_info['type'];
       $this->render_fields($this->view->result);
       foreach ($this->view->result as $id => $result) {
         $geofield = $this->get_field_value($id, $this->options['data_source']);
 
         if (!empty($geofield)) {
-          $points = leaflet_process_geofield($geofield);
+          switch ($field_type) {
+            case 'geofield':
+              $points = leaflet_process_geofield($geofield);
+              break;
+            case 'location':
+              $points = leaflet_process_location($geofield);
+              break;
+            default:
+              $points = array();
+          }
 
           // Render the entity with the selected view mode
           if ($this->options['description_field'] === '#rendered_entity' && is_object($result)) {
