Index: applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/ToulouseDataSetHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/ToulouseDataSetHandler.java	(revision 31047)
+++ applications/editors/josm/plugins/opendata/modules/fr.toulouse/src/org/openstreetmap/josm/plugins/opendata/modules/fr/toulouse/datasets/ToulouseDataSetHandler.java	(revision 31048)
@@ -37,5 +37,5 @@
 
 public abstract class ToulouseDataSetHandler extends FrenchDataSetHandler implements ToulouseConstants {
-    
+
     /**
      * Categories
@@ -48,18 +48,18 @@
     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_SPORT = new DataSetCategory("Sport", "styles/standard/sport/soccer.png");
     public static final DataSetCategory CAT_TOPOGRAPHIE = new DataSetCategory("Topographie", "presets/peak.svg");
     public static final DataSetCategory CAT_TRANSPORT = new DataSetCategory("Transport", "presets/bus.png");
-    public static final DataSetCategory CAT_URBANISME = new DataSetCategory("Urbanisme", "presets/places.png");
+    public static final DataSetCategory CAT_URBANISME = new DataSetCategory("Urbanisme", "styles/standard/place/settlement/city.png");
 
     public ToulouseDataSetHandler(int portalId) {
         init(portalId);
     }
-    
+
     public ToulouseDataSetHandler(int portalId, String relevantTag) {
         super(relevantTag);
         init(portalId);
     }
-    
+
     public ToulouseDataSetHandler(int portalId, boolean relevantUnion, String ... relevantTags) {
         super(relevantUnion, relevantTags);
@@ -75,5 +75,5 @@
         init(portalId);
     }*/
-    
+
     public ToulouseDataSetHandler(int portalId, boolean relevantUnion, Tag ... relevantTags) {
         super(relevantUnion, relevantTags);
@@ -84,5 +84,5 @@
         this(portalId, false, relevantTags);
     }*/
-    
+
     private final void init(int portalId) {
         try {
@@ -116,5 +116,5 @@
         return ICON_CROIX_16;
     }
-    
+
     protected final void setWikiPage(String wikiPage) {
         if (wikiPage != null && !wikiPage.isEmpty()) {
@@ -127,7 +127,7 @@
         }
     }
-    
+
     protected abstract class SplitAction extends JosmAction implements DataSetListener {
-        
+
         public SplitAction(String name, String desc) {
             super(name, null, desc, null, false);
@@ -135,7 +135,7 @@
             ToulouseModule.data.addDataSetListener(this);
         }
-        
+
         protected abstract Collection<Relation> getBoundaries();
-        
+
         @Override
         public void actionPerformed(ActionEvent e) {
@@ -191,5 +191,5 @@
         }
     }
-    
+
     protected class SplitByMunicipality extends SplitAction {
         public SplitByMunicipality() {
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 31047)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/OdPlugin.java	(revision 31048)
@@ -20,4 +20,5 @@
 import org.openstreetmap.josm.gui.MenuScroller;
 import org.openstreetmap.josm.gui.preferences.PreferenceSetting;
+import org.openstreetmap.josm.gui.util.GuiHelper;
 import org.openstreetmap.josm.plugins.Plugin;
 import org.openstreetmap.josm.plugins.PluginInformation;
@@ -49,11 +50,11 @@
 
     private static OdPlugin instance;
-    
+
     public final XmlImporter xmlImporter = new XmlImporter();
-    
+
     private final JMenu menu;
-    
+
     private OdDialog dialog;
-    
+
     public OdPlugin(PluginInformation info) {
         super(info);
@@ -75,12 +76,17 @@
 
         menu = Main.main.menu.dataMenu;
-        
+
         new Thread(new Runnable() {
             @Override
             public void run() {
-                // Load modules
+                // Load modules in new thread
                 loadModules();
-                // Add menu
-                buildMenu();
+                // Add menu in EDT
+                GuiHelper.runInEDT(new Runnable() {
+                    @Override
+                    public void run() {
+                        buildMenu();
+                    }
+                });
             }
         }).start();
@@ -91,9 +97,9 @@
         OdUtils.deletePreviousTempDirs();
     }
-    
+
     public static final OdPlugin getInstance() {
         return instance;
     }
-    
+
     private JMenu getModuleMenu(Module module) {
         String moduleName = module.getDisplayedName();
@@ -105,5 +111,5 @@
         return moduleMenu;
     }
-    
+
     private void buildMenu() {
         for (Module module : ModuleHandler.moduleList) {
@@ -161,8 +167,8 @@
         MainMenu.add(menu, new OpenPreferencesActions());
     }
-    
+
     private void setMenuItemIcon(ImageIcon icon, JMenuItem menuItem) {
         if (icon != null) {
-            if (icon.getIconHeight() != 16 || icon.getIconWidth() != 16) { 
+            if (icon.getIconHeight() != 16 || icon.getIconWidth() != 16) {
                 icon = new ImageIcon(icon.getImage().getScaledInstance(16, 16, Image.SCALE_DEFAULT));
             }
@@ -179,10 +185,10 @@
         }
     }
-    
+
     @Override
     public PreferenceSetting getPreferenceSetting() {
         return new OdPreferenceSetting();
     }
-    
+
     private final void loadModules() {
         List<ModuleInformation> modulesToLoad = ModuleHandler.buildListOfModulesToLoad(Main.parent);
@@ -194,5 +200,5 @@
         ModuleHandler.loadModules(Main.parent, modulesToLoad, null);
     }
-    
+
     private final File getSubDirectory(String name) {
         File dir = new File(getPluginDir()+File.separator+name);
@@ -202,5 +208,5 @@
         return dir;
     }
-    
+
     public final File getModulesDirectory() {
         return getSubDirectory("modules");
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreference.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreference.java	(revision 31047)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/gui/ModulePreference.java	(revision 31048)
@@ -62,5 +62,5 @@
         }
     }*/
-    
+
     public static String buildDownloadSummary(ModuleDownloadTask task) {
         Collection<ModuleInformation> downloaded = task.getDownloadedModules();
@@ -161,4 +161,5 @@
     }
 
+    @Override
     public void addGui(final PreferenceTabbedPane gui) {
         GridBagConstraints gc = new GridBagConstraints();
@@ -215,4 +216,5 @@
     }
 
+    @Override
     public boolean ok() {
         if (! modulePreferencesActivated)
@@ -236,7 +238,9 @@
         final ReadLocalModuleInformationTask task = new ReadLocalModuleInformationTask();
         Runnable r = new Runnable() {
+            @Override
             public void run() {
                 if (task.isCanceled()) return;
                 SwingUtilities.invokeLater(new Runnable() {
+                    @Override
                     public void run() {
                         model.setAvailableModules(task.getAvailableModules());
@@ -262,10 +266,13 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             final ReadRemoteModuleInformationTask task = new ReadRemoteModuleInformationTask(OdPreferenceSetting.getModuleSites());
             Runnable continuation = new Runnable() {
+                @Override
                 public void run() {
                     if (task.isCanceled()) return;
                     SwingUtilities.invokeLater(new Runnable() {
+                        @Override
                         public void run() {
                             model.updateAvailableModules(task.getAvailableModules());
@@ -325,4 +332,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             final List<ModuleInformation> toUpdate = model.getSelectedModules();
@@ -339,4 +347,5 @@
             //
             final Runnable moduleDownloadContinuation = new Runnable() {
+                @Override
                 public void run() {
                     if (moduleDownloadTask.isCanceled())
@@ -345,5 +354,10 @@
                     model.refreshLocalModuleVersion(moduleDownloadTask.getDownloadedModules());
                     model.clearPendingModules(moduleDownloadTask.getDownloadedModules());
-                    pnlModulePreferences.refreshView();
+                    GuiHelper.runInEDT(new Runnable() {
+                        @Override
+                        public void run() {
+                            pnlModulePreferences.refreshView();
+                        }
+                    });
                 }
             };
@@ -352,4 +366,5 @@
             //
             final Runnable moduleInfoDownloadContinuation = new Runnable() {
+                @Override
                 public void run() {
                     if (moduleInfoDownloadTask.isCanceled())
@@ -392,4 +407,5 @@
         }
 
+        @Override
         public void actionPerformed(ActionEvent e) {
             configureSites();
@@ -408,4 +424,5 @@
         }
 
+        @Override
         public void stateChanged(ChangeEvent e) {
             JTabbedPane tp = (JTabbedPane)e.getSource();
@@ -431,12 +448,15 @@
         }
 
+        @Override
         public void changedUpdate(DocumentEvent arg0) {
             filter();
         }
 
+        @Override
         public void insertUpdate(DocumentEvent arg0) {
             filter();
         }
 
+        @Override
         public void removeUpdate(DocumentEvent arg0) {
             filter();
@@ -459,4 +479,5 @@
             JPanel buttons = new JPanel(new GridBagLayout());
             buttons.add(new JButton(new AbstractAction(tr("Add")){
+                @Override
                 public void actionPerformed(ActionEvent e) {
                     String s = JOptionPane.showInputDialog(
@@ -472,4 +493,5 @@
             }), GBC.eol().fill(GBC.HORIZONTAL));
             buttons.add(new JButton(new AbstractAction(tr("Edit")){
+                @Override
                 public void actionPerformed(ActionEvent e) {
                     if (list.getSelectedValue() == null) {
@@ -497,4 +519,5 @@
             }), GBC.eol().fill(GBC.HORIZONTAL));
             buttons.add(new JButton(new AbstractAction(tr("Delete")){
+                @Override
                 public void actionPerformed(ActionEvent event) {
                     if (list.getSelectedValue() == null) {
