Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseConstants.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseConstants.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseConstants.java	(revision 29657)
@@ -51,16 +51,16 @@
     
     /**
-     * Categories: TODO: icons
+     * Categories
      */
-    public static final DataSetCategory CAT_ASSOCIATIONS = new DataSetCategory("Associations", "");
-    public static final DataSetCategory CAT_CITOYENNETE = new DataSetCategory("Citoyenneté", "");
-    public static final DataSetCategory CAT_CULTURE = new DataSetCategory("Culture", "");
-    public static final DataSetCategory CAT_ENFANCE = new DataSetCategory("Enfance", "");
-    public static final DataSetCategory CAT_ENVIRONNEMENT = new DataSetCategory("Environnement", "");
-    public static final DataSetCategory CAT_PATRIMOINE = new DataSetCategory("Patrimoine", "");
-    public static final DataSetCategory CAT_SERVICES = new DataSetCategory("Services", "");
-    public static final DataSetCategory CAT_SPORT = new DataSetCategory("Sport", "");
-    public static final DataSetCategory CAT_TOPOGRAPHIE = new DataSetCategory("Topographie", "");
-    public static final DataSetCategory CAT_TRANSPORT = new DataSetCategory("Transport", "");
-    public static final DataSetCategory CAT_URBANISME = new DataSetCategory("Urbanisme", "");
+    public static final DataSetCategory CAT_ASSOCIATIONS = new DataSetCategory("Associations", "styles/standard/people.png");
+    public static final DataSetCategory CAT_CITOYENNETE = new DataSetCategory("Citoyenneté", "presets/townhall.png");
+    public static final DataSetCategory CAT_CULTURE = new DataSetCategory("Culture", "presets/arts_centre.png");
+    public static final DataSetCategory CAT_ENFANCE = new DataSetCategory("Enfance", "presets/kindergarten.png");
+    public static final DataSetCategory CAT_ENVIRONNEMENT = new DataSetCategory("Environnement", "presets/recycling.png");
+    public static final DataSetCategory CAT_PATRIMOINE = new DataSetCategory("Patrimoine", "presets/ruins.png");
+    public static final DataSetCategory CAT_SERVICES = new DataSetCategory("Services", "styles/standard/vehicle/services.png");
+    public static final DataSetCategory CAT_SPORT = new DataSetCategory("Sport", "presets/soccer.png");
+    public static final DataSetCategory CAT_TOPOGRAPHIE = new DataSetCategory("Topographie", "presets/peak.png");
+    public static final DataSetCategory CAT_TRANSPORT = new DataSetCategory("Transport", "presets/bus.png");
+    public static final DataSetCategory CAT_URBANISME = new DataSetCategory("Urbanisme", "presets/places.png");
 }
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseModule.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseModule.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/ToulouseModule.java	(revision 29657)
@@ -55,4 +55,5 @@
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.sport.InstallationSportiveToulouseHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.topographie.AltimetrieVoieHandler;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport.AiresPietonnesHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport.ChantiersLineairesHandler;
 import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport.ChantiersPonctuelsHandler;
@@ -116,4 +117,5 @@
         handlers.add(StationsAutoPartageHandler.class);
         handlers.add(MarchesPleinVentHandler.class);
+        handlers.add(AiresPietonnesHandler.class);
     }
     
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/QuartiersHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/QuartiersHandler.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/QuartiersHandler.java	(revision 29657)
@@ -26,4 +26,5 @@
         setWikiPage("Quartiers de proximité");
         setCategory(CAT_CITOYENNETE);
+        setMenuIcon("presets/boundaries.png");
     }
 
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/SecteursHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/SecteursHandler.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/citoyennete/SecteursHandler.java	(revision 29657)
@@ -26,4 +26,5 @@
         setWikiPage("Secteurs de proximité");
         setCategory(CAT_CITOYENNETE);
+        setMenuIcon("presets/boundaries.png");
     }
 
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/AiresPietonnesHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/AiresPietonnesHandler.java	(revision 29657)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/AiresPietonnesHandler.java	(revision 29657)
@@ -0,0 +1,60 @@
+//    JOSM opendata plugin.
+//    Copyright (C) 2011-2013 Don-vip
+//
+//    This program is free software: you can redistribute it and/or modify
+//    it under the terms of the GNU General Public License as published by
+//    the Free Software Foundation, either version 3 of the License, or
+//    (at your option) any later version.
+//
+//    This program is distributed in the hope that it will be useful,
+//    but WITHOUT ANY WARRANTY; without even the implied warranty of
+//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//    GNU General Public License for more details.
+//
+//    You should have received a copy of the GNU General Public License
+//    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+package org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.transport;
+
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.plugins.opendata.modules.fr.toulouse.datasets.urbanisme.VoirieHandler;
+
+public class AiresPietonnesHandler extends VoirieHandler {
+
+    public AiresPietonnesHandler() {
+        super(19687, "Street", "highway=pedestrian");
+        setName("Aires piétonnes");
+        setCategory(CAT_TRANSPORT);
+    }
+
+    @Override
+    public boolean acceptsFilename(String filename) {
+        return acceptsKmzTabFilename(filename, "Aires_pietonnes");
+    }
+
+    @Override
+    public void updateDataSet(DataSet ds) {
+        super.updateDataSet(ds);
+        
+        for (Way w : ds.getWays()) {
+            w.put("highway", "pedestrian");
+            w.remove("Id_Seg_Ges");
+            replace(w, "Annee", "start_date");
+            replace(w, "Longueur", "length");
+            w.remove("MotDir");
+            w.remove("Nrivoli");
+            w.remove("code_insee");
+            w.remove("codsti");
+            w.remove("color");
+            replace(w, "commentaire", "note");
+            w.remove("commune");
+            w.remove("pole");
+            replace(w, "ref_arrete", "bylaw");
+        }
+    }
+    
+    @Override
+    protected String getStreetId(Way w) {
+        return w.get("Nrivoli");
+    }
+}
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/HorodateurHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/HorodateurHandler.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/HorodateurHandler.java	(revision 29657)
@@ -30,4 +30,5 @@
         setWikiPage("Horodateurs");
         setCategory(CAT_TRANSPORT);
+        setMenuIcon("presets/vending_machine.png");
     }
 
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/MetroStationHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/MetroStationHandler.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/MetroStationHandler.java	(revision 29657)
@@ -26,4 +26,5 @@
         setName("Stations de métro");
         setCategory(CAT_TRANSPORT);
+        setMenuIcon("styles/standard/transport/railway_station.png");
     }
 
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/PMRHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/PMRHandler.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/PMRHandler.java	(revision 29657)
@@ -26,4 +26,5 @@
         setWikiPage("PMR");
         setCategory(CAT_TRANSPORT);
+        setMenuIcon("styles/standard/vehicle/parking/handicapped.png");
     }
 
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/TramwayStationHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/TramwayStationHandler.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/transport/TramwayStationHandler.java	(revision 29657)
@@ -26,4 +26,5 @@
         setName("Stations de tramway");
         setCategory(CAT_TRANSPORT);
+        setMenuIcon("styles/standard/transport/railway_station.png");
     }
 
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/CommuneHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/CommuneHandler.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/CommuneHandler.java	(revision 29657)
@@ -26,4 +26,5 @@
         setName("Communes");
         setCategory(CAT_URBANISME);
+        setMenuIcon("presets/boundaries.png");
     }
 
Index: /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/VoirieHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/VoirieHandler.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/urbanisme/VoirieHandler.java	(revision 29657)
@@ -39,8 +39,9 @@
         setName("Filaire de voirie");
         setCategory(CAT_URBANISME);
+        setMenuIcon("presets/way_secondary.png");
     }
     
-    protected VoirieHandler(int portalId, String streetField, String relevantKey) {
-        super(portalId, relevantKey);
+    protected VoirieHandler(int portalId, String streetField, String relevantTag) {
+        super(portalId, relevantTag);
         this.streetField = streetField;
         map.put("motorway", Arrays.asList(new String[] {"A6", "AUTOROUTE "}));
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/OdPlugin.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/OdPlugin.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/OdPlugin.java	(revision 29657)
@@ -19,4 +19,5 @@
 import static org.openstreetmap.josm.tools.I18n.marktr;
 
+import java.awt.Image;
 import java.awt.Toolkit;
 import java.awt.event.KeyEvent;
@@ -28,4 +29,5 @@
 import java.util.Map;
 
+import javax.swing.ImageIcon;
 import javax.swing.JMenu;
 import javax.swing.JMenuItem;
@@ -129,4 +131,5 @@
         				if ((endMenu = catMenus.get(cat)) == null) {
         					catMenus.put(cat, endMenu = new JMenu(cat.getName()));
+        					setMenuItemIcon(cat.getIcon(), endMenu);
         					moduleMenu.add(endMenu);
         				}
@@ -139,6 +142,7 @@
         				handlerName = handler.getClass().getName();
         			}
+        			JMenuItem handlerItem = null;
         			if (handler.getDataURL() != null) {
-        				endMenu.add(new DownloadDataAction(handlerName, handler.getDataURL()));
+        			    handlerItem = endMenu.add(new DownloadDataAction(handlerName, handler.getDataURL()));
         			} else if (handler.getDataURLs() != null) {
         				JMenu handlerMenu = new JMenu(handlerName);
@@ -151,6 +155,9 @@
         				if (item != null) {
         					MenuScroller.setScrollerFor(handlerMenu, (screenHeight / item.getPreferredSize().height)-3);
-        					endMenu.add(handlerMenu);
+        					handlerItem = endMenu.add(handlerMenu);
         				}
+        			}
+        			if (handlerItem != null) {
+        			    setMenuItemIcon(handler.getMenuIcon(), handlerItem);
         			}
         		}
@@ -164,4 +171,13 @@
         /*JMenuItem itemIcon =*/ MainMenu.add(menu, new OpenPreferencesActions());
         //MenuScroller.setScrollerFor(menu, screenHeight / itemIcon.getPreferredSize().height);
+	}
+	
+	private void setMenuItemIcon(ImageIcon icon, JMenuItem menuItem) {
+        if (icon != null) {
+            if (icon.getIconHeight() != 16 || icon.getIconWidth() != 16) { 
+                icon = new ImageIcon(icon.getImage().getScaledInstance(16, 16, Image.SCALE_DEFAULT));
+            }
+            menuItem.setIcon(icon);
+        }
 	}
 
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/AbstractDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/AbstractDataSetHandler.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/AbstractDataSetHandler.java	(revision 29657)
@@ -23,4 +23,6 @@
 import java.util.List;
 import java.util.regex.Pattern;
+
+import javax.swing.ImageIcon;
 
 import org.openstreetmap.josm.actions.JosmAction;
@@ -44,4 +46,5 @@
 import org.openstreetmap.josm.plugins.opendata.core.licenses.License;
 import org.openstreetmap.josm.plugins.opendata.core.util.NamesFrUtils;
+import org.openstreetmap.josm.plugins.opendata.core.util.OdUtils;
 import org.openstreetmap.josm.tools.Pair;
 
@@ -85,4 +88,5 @@
 	private String sourceDate;
 	private File associatedFile;
+	private ImageIcon menuIcon;
 
 	public AbstractDataSetHandler() {
@@ -397,5 +401,17 @@
 				fileNameWithoutExtension+"."+MAPCSS_EXT);
 	}
-		
+	
+    public final ImageIcon getMenuIcon() {
+        return menuIcon;
+    }
+
+    public final void setMenuIcon(ImageIcon icon) {
+        this.menuIcon = icon;
+    }
+
+    public final void setMenuIcon(String iconName) {
+        setMenuIcon(OdUtils.getImageIcon(iconName));
+    }
+
 	public final void setAssociatedFile(File associatedFile) {
 		this.associatedFile = associatedFile;
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/SimpleDataSetHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/SimpleDataSetHandler.java	(revision 29656)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/SimpleDataSetHandler.java	(revision 29657)
@@ -16,4 +16,12 @@
 package org.openstreetmap.josm.plugins.opendata.core.datasets;
 
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaQueryType.NODE;
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaQueryType.RELATION;
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaQueryType.WAY;
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaRecurseType.NODE_RELATION;
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaRecurseType.RELATION_WAY;
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaRecurseType.WAY_NODE;
+import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaRecurseType.WAY_RELATION;
+
 import java.util.ArrayList;
 import java.util.Collection;
@@ -24,8 +32,6 @@
 import org.openstreetmap.josm.data.osm.Tag;
 import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.gui.mappaint.MapPaintStyles;
 import org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi;
-
-import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaQueryType.*;
-import static org.openstreetmap.josm.plugins.opendata.core.io.OverpassApi.OaRecurseType.*;
 
 public abstract class SimpleDataSetHandler extends AbstractDataSetHandler {
@@ -45,4 +51,12 @@
 		addRelevantTag(relevantTag);
 		this.relevantUnion = false;
+        Tag tag;
+		String[] kv = relevantTag.split("=");
+		if (kv != null && kv.length == 2) {
+	        tag = new Tag(kv[0], kv[1]);
+		} else {
+		    tag = new Tag(relevantTag);
+		}
+		setMenuIcon(MapPaintStyles.getNodeIcon(tag));
 	}
 	
