Index: simple_geo/js/micromap.js
===================================================================
--- simple_geo/js/micromap.js	(revision 847)
+++ simple_geo/js/micromap.js	(working copy)
@@ -7,6 +7,7 @@
 
   jQuery(document).ready(function () {
     var positions, info_window, info_window_content, map_highlight, placeholder, map, icon, tmp_ids, bounds, pos_len, i, lat, lng, pos, marker, default_zoom, default_center, map_state, placeholder_html, micromap_parent, micromap_add_mode;
+    var icon_overwritten = false;
 
     positions = jQuery('.geo');
 
@@ -48,7 +49,33 @@
         lat = jQuery(positions.get(i)).find('.latitude').text();
         lng = jQuery(positions.get(i)).find('.longitude').text();
 
+        spc_icon = jQuery(positions.get(i)).find('.icon').text();
+
+        //use_icon = icon; //initialize the icon to be used for this point
+        if (spc_icon) {
+          icon.image = spc_icon;
+          icon_overwritten = true;
+
+          spc_iconSize = jQuery(positions.get(i)).find('.iconSize').text();
+          if (spc_iconSize) {
+            _size = spc_iconSize.split(',');
+            icon.imageSize = new GSize(_size[0], _size[1]);
+          }
+
+          spc_iconAnchor = jQuery(positions.get(i)).find('.iconAnchor').text();
+          if (spc_iconAnchor) {
+            _anchor = spc_iconAnchor.split(',');
+            icon.imageAnchor = new GPoint(_anchor[0], _anchor[1]);
+          }
+        } else {
+          if (icon_overwritten) {
+            icon = new GIcon(G_DEFAULT_ICON);
+          }
+          icon_overwritten = false;
+        }
+
         pos = new GLatLng(lat, lng);
+
         marker = new google.maps.Marker(pos, {'icon' : icon});
         if (i === 0) {
           map.setCenter(pos);
