Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/actions/OpenLinkAction.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/actions/OpenLinkAction.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/actions/OpenLinkAction.java	(revision 30795)
@@ -10,4 +10,5 @@
 import javax.swing.Action;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
@@ -15,5 +16,4 @@
 import org.openstreetmap.josm.tools.OpenBrowser;
 
-@SuppressWarnings("serial")
 public class OpenLinkAction extends JosmAction {
 
@@ -29,9 +29,9 @@
     public void actionPerformed(ActionEvent e) {
         try {
-            System.out.println("Opening "+url);
+            Main.info("Opening "+url);
             OpenBrowser.displayUrl(url.toURI());
         } catch (URISyntaxException e1) {
             try {
-                System.err.println(e1.getLocalizedMessage());
+                Main.error(e1.getLocalizedMessage());
                 int index = e1.getIndex();
                 if (index > -1) {
@@ -39,9 +39,9 @@
                     s = url.toString().replace(s, URLEncoder.encode(s, OdConstants.UTF8));
                     URI uri = new URI(s);
-                    System.out.println("Opening "+uri);
+                    Main.info("Opening "+uri);
                     OpenBrowser.displayUrl(uri);
                 }
             } catch (Exception e2) {
-                e2.printStackTrace();
+                Main.error(e2);
             }
         }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NeptuneReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NeptuneReader.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NeptuneReader.java	(revision 30795)
@@ -134,5 +134,5 @@
         p.put("ref:neptune", object.getObjectId());
         if (tridentObjects.put(object.getObjectId(), p) != null) {
-            System.err.println("Trident object duplicated !!! : "+object.getObjectId());
+            Main.error("Trident object duplicated !!! : "+object.getObjectId());
         }
     }
@@ -151,13 +151,5 @@
         return n;
     }
-    /*
-    private Node createStopPosition(StopPointType stop) {
-        Node n = createNode(createLatLon(stop));
-        n.put(OSM_PUBLIC_TRANSPORT, OSM_STOP_POSITION);
-        linkTridentObjectToOsmPrimitive(stop, n);
-        n.put("name", stop.getName());
-        return n;
-    }
-*/
+
     protected Relation createRelation(String type){
         Relation r = new Relation();
@@ -199,5 +191,5 @@
             r.put(OSM_ROUTE_MASTER, OSM_TROLLEYBUS); break;
         default:
-            System.err.println("Unsupported transport mode: "+line.getTransportModeName());
+            Main.warn("Unsupported transport mode: "+line.getTransportModeName());
         }
         r.put("ref", line.getNumber());
@@ -265,5 +257,5 @@
                         StopArea child = findStopArea(childId);
                         if (child == null) {
-                            System.err.println("Cannot find StopArea: "+childId);
+                            Main.warn("Cannot find StopArea: "+childId);
                         } else {
                             if (child.getStopAreaExtension().getAreaType().equals(ChouetteAreaType.BOARDING_POSITION)) {
@@ -272,5 +264,5 @@
                                         StopPoint grandchild = findStopPoint(grandchildId);
                                         if (grandchild == null) {
-                                            System.err.println("Cannot find StopPoint: "+grandchildId);
+                                            Main.warn("Cannot find StopPoint: "+grandchildId);
                                         } else {
                                             if (grandchild.getLongLatType().equals(LongLatTypeType.WGS_84)) {
@@ -278,9 +270,9 @@
                                                 stopArea.addMember(new RelationMember(OSM_PLATFORM, platform));
                                             } else {
-                                                System.err.println("Unsupported long/lat type: "+grandchild.getLongLatType());
+                                                Main.warn("Unsupported long/lat type: "+grandchild.getLongLatType());
                                             }
                                         }
                                     } else {
-                                        System.err.println("Unsupported grandchild: "+grandchildId);
+                                        Main.warn("Unsupported grandchild: "+grandchildId);
                                     }
                                 }
@@ -288,7 +280,7 @@
                                 AreaCentroid areaCentroid = findAreaCentroid(centroidId);
                                 if (areaCentroid == null) {
-                                    System.err.println("Cannot find AreaCentroid: "+centroidId);
+                                    Main.warn("Cannot find AreaCentroid: "+centroidId);
                                 } else if (!areaCentroid.getLongLatType().equals(LongLatTypeType.WGS_84)) {
-                                    System.err.println("Unsupported long/lat type: "+areaCentroid.getLongLatType());
+                                    Main.warn("Unsupported long/lat type: "+areaCentroid.getLongLatType());
                                 } else {
                                     for (RelationMember member : stopArea.getMembers()) {
@@ -300,5 +292,5 @@
                                 }
                             } else {
-                                System.err.println("Unsupported child type: "+child.getStopAreaExtension().getAreaType());
+                                Main.warn("Unsupported child type: "+child.getStopAreaExtension().getAreaType());
                             }
                         }
@@ -307,5 +299,5 @@
                         StopPoint child = findStopPoint(childId);
                         if (child == null) {
-                            System.err.println("Cannot find StopPoint: "+childId);
+                            Main.warn("Cannot find StopPoint: "+childId);
                         } else {
                             // TODO
@@ -333,5 +325,5 @@
                 PTLinkType ptlink = findPtLink(id);
                 if (ptlink == null) {
-                    System.err.println("Cannot find PTLinkType: "+id);
+                    Main.warn("Cannot find PTLinkType: "+id);
                 } else {
                     /*StopPoint start = findStopPoint(ptlink.getStartOfLink());
@@ -340,5 +332,5 @@
                     OsmPrimitive end = tridentObjects.get(ptlink.getEndOfLink());
                     if (start == null) {
-                        System.err.println("Cannot find start StopPoint: "+ptlink.getStartOfLink());
+                        Main.warn("Cannot find start StopPoint: "+ptlink.getStartOfLink());
                     } else if (start.get(OSM_PUBLIC_TRANSPORT).equals(OSM_STOP) || start.get(OSM_PUBLIC_TRANSPORT).equals(OSM_PLATFORM)) {
                         addStopToRoute(route, start);
@@ -346,5 +338,5 @@
 
                     if (end == null) {
-                        System.err.println("Cannot find end StopPoint: "+ptlink.getEndOfLink());
+                        Main.warn("Cannot find end StopPoint: "+ptlink.getEndOfLink());
                     } else if (end.get(OSM_PUBLIC_TRANSPORT).equals(OSM_STOP) || end.get(OSM_PUBLIC_TRANSPORT).equals(OSM_PLATFORM)) {
                         addStopToRoute(route, end);
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NetworkReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NetworkReader.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/NetworkReader.java	(revision 30795)
@@ -11,4 +11,5 @@
 import java.util.regex.Pattern;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
@@ -109,5 +110,5 @@
             //return CsvReader.class;//FIXME, can also be .tar.gz
         } else {
-            System.err.println("Unsupported content type: "+contentType);
+            Main.warn("Unsupported content type: "+contentType);
         }
         return null;
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveReader.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/archive/ArchiveReader.java	(revision 30795)
@@ -120,5 +120,5 @@
             }
         } catch (IllegalArgumentException e) {
-            System.err.println(e.getMessage());
+            Main.error(e.getMessage());
         } finally {
             OdUtils.deleteDir(temp);
@@ -168,9 +168,8 @@
                     from = NeptuneReader.parseDataSet(in, handler, instance);
                 } else {
-                    System.err.println("Unsupported XML file: "+f.getName());
+                    Main.warn("Unsupported XML file: "+f.getName());
                 }
-                
             } else {
-                System.err.println("Unsupported file extension: "+f.getName());
+                Main.warn("Unsupported file extension: "+f.getName());
             }
             return from;
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/AbstractMapInfoReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/AbstractMapInfoReader.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/AbstractMapInfoReader.java	(revision 30795)
@@ -12,4 +12,5 @@
 import java.util.List;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.io.AbstractReader;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
@@ -67,5 +68,5 @@
             return Charset.forName(OdConstants.MAC_ROMAN);
         } else {
-            System.err.println("Line "+lineNum+". Unknown charset detected: "+line);
+            Main.error("Line "+lineNum+". Unknown charset detected: "+line);
             return Charset.forName(words[index]);
         }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java	(revision 30795)
@@ -102,5 +102,5 @@
                                             result.add(CRS.findMathTransform(CRS.decode(p.toCode()), targetCRS, lenient));
                                         } catch (FactoryException e) {
-                                            System.err.println(e.getMessage());
+                                            Main.error(e.getMessage());
                                         }
                                     }
@@ -113,5 +113,5 @@
             if (!result.isEmpty()) {
                 if (result.size() > 1) {
-                    System.err.println("Found multiple projections !"); // TODO: something
+                    Main.warn("Found multiple projections !"); // TODO: something
                 }
                 return result.get(0);
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicReader.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/GeographicReader.java	(revision 30795)
@@ -152,5 +152,5 @@
                     w.addNode(createOrGetNode(ls.getPointN(i)));
                 } catch (Exception e) {
-                    System.err.println(e.getMessage());
+                    Main.error(e.getMessage());
                 }
             }
@@ -278,5 +278,4 @@
                     } catch (FactoryException ex) {
                         // Silently ignore exceptions
-                        //System.err.println("Warning: cannot decode "+code+". "+ex.getMessage());
                     }
                 }
@@ -292,5 +291,5 @@
                         transform = CRS.findMathTransform(newCRS, wgs84, false);
                     } catch (OperationNotFoundException ex) {
-                        System.err.println(newCRS.getName()+": "+e.getMessage());
+                        Main.warn(newCRS.getName()+": "+e.getMessage());
                     }
                 }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReader.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/ShpReader.java	(revision 30795)
@@ -124,5 +124,5 @@
                 int nGeometries = mp.getNumGeometries(); 
                 if (nGeometries < 1) {
-                    System.err.println("Error: empty geometry collection found");
+                    Main.error("empty geometry collection found");
                 } else {
                     Relation r = null;
@@ -151,5 +151,5 @@
                             readNonGeometricAttributes(feature, createOrGetNode((Point) g));
                         } else {
-                            System.err.println("Error: unsupported geometry : "+g);
+                            Main.error("unsupported geometry : "+g);
                         }
                     }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/TabReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/TabReader.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/TabReader.java	(revision 30795)
@@ -16,4 +16,5 @@
 import org.geotools.data.shapefile.dbf.DbaseFileReader.Row;
 import org.geotools.data.shapefile.files.TabFiles;
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
@@ -82,5 +83,5 @@
                     doParse(columns.toArray(new String[0]), instance);
         } catch (IOException e) {
-            System.err.println(e.getMessage());
+            Main.error(e.getMessage());
         }
         return ds;
@@ -104,5 +105,5 @@
             parseColumns(words);
         } else if (!line.isEmpty()) {
-            System.err.println("Line "+lineNum+". Unknown clause in header: "+line);
+            Main.warn("Line "+lineNum+". Unknown clause in header: "+line);
         }
     }
@@ -117,5 +118,5 @@
             datCharset = parseCharset(words, 3);
         } else {
-            System.err.println("Line "+lineNum+". Unknown Type clause in header: "+line);
+            Main.warn("Line "+lineNum+". Unknown Type clause in header: "+line);
         }
     }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 30795)
@@ -203,5 +203,5 @@
                     }
                 } catch (ParseException e) {
-                    System.err.println("Warning: Parsing error on line "+lineNumber+": "+e.getMessage());
+                    Main.warn("Parsing error on line "+lineNumber+": "+e.getMessage());
                 }
             }
@@ -213,5 +213,5 @@
                     n.setCoor(c.proj != null && !handlerOK ? c.proj.eastNorth2latlon(en) : handler.getCoor(en, fields));
                 } else {
-                    System.err.println("Warning: Skipping line "+lineNumber+" because no valid coordinates have been found at columns "+c);
+                    Main.warn("Skipping line "+lineNumber+" because no valid coordinates have been found at columns "+c);
                 }
                 if (n.getCoor() != null) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/XlsReader.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/XlsReader.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/XlsReader.java	(revision 30795)
@@ -44,5 +44,5 @@
             Throwable ex = e.getException();
             if (ex != null && ex.getMessage() != null) {
-                System.err.println(ex.getClass()+": "+ex.getMessage());
+                Main.error(ex.getClass()+": "+ex.getMessage());
             }
             throw new IOException(e);
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdOsmDataLayer.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdOsmDataLayer.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/layers/OdOsmDataLayer.java	(revision 30795)
@@ -38,5 +38,4 @@
                                 nodes = ((Way) p).getNodes();
                             }
-                            //data.removePrimitive(p);
                             if (nodes != null) {
                                 for (Node n : nodes) {
@@ -49,12 +48,8 @@
                                     
                                     if (refferingAllowedWays.isEmpty()) {
-                                        //data.removePrimitive(n);
                                         data.addSelected(n);
                                     }
                                 }
                             }
-                            /*for (OsmPrimitive referrer : p.getReferrers()) {
-                                System.out.println(referrer);
-                            }*/
                         }
                     }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleDownloadTask.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleDownloadTask.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleDownloadTask.java	(revision 30795)
@@ -16,4 +16,5 @@
 import java.util.LinkedList;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.Version;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
@@ -94,5 +95,5 @@
             if (pi.downloadlink == null) {
                 String msg = tr("Warning: Cannot download module ''{0}''. Its download link is not known. Skipping download.", pi.name);
-                System.err.println(msg);
+                Main.warn(msg);
                 throw new ModuleDownloadException(msg);
             }
@@ -116,5 +117,5 @@
         } catch(MalformedURLException e) {
             String msg = tr("Warning: Cannot download module ''{0}''. Its download link ''{1}'' is not a valid URL. Skipping download.", pi.name, pi.downloadlink);
-            System.err.println(msg);
+            Main.warn(msg);
             throw new ModuleDownloadException(msg);
         } catch (IOException e) {
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleHandler.java	(revision 30795)
@@ -134,5 +134,5 @@
         if (policy.equals("never")) {
             if ("opendata.modulemanager.time-based-update.policy".equals(togglePreferenceKey)) {
-                System.out.println(tr("Skipping module update after elapsed update interval. Automatic update at startup is disabled."));
+                Main.info(tr("Skipping module update after elapsed update interval. Automatic update at startup is disabled."));
             }
             return false;
@@ -141,5 +141,5 @@
         if (policy.equals("always")) {
             if ("opendata.modulemanager.time-based-update.policy".equals(togglePreferenceKey)) {
-                System.out.println(tr("Running module update after elapsed update interval. Automatic update at startup is disabled."));
+                Main.info(tr("Running module update after elapsed update interval. Automatic update at startup is disabled."));
             }
             return true;
@@ -147,5 +147,5 @@
 
         if (!policy.equals("ask")) {
-            System.err.println(tr("Unexpected value ''{0}'' for preference ''{1}''. Assuming value ''ask''.", policy, togglePreferenceKey));
+            Main.warn(tr("Unexpected value ''{0}'' for preference ''{1}''. Assuming value ''ask''.", policy, togglePreferenceKey));
         }
         int ret = HelpAwareOptionPane.showOptionDialog(
@@ -227,5 +227,5 @@
             Class<? extends Module> klass = module.loadClass(moduleClassLoader);
             if (klass != null) {
-                System.out.println(tr("loading module ''{0}'' (version {1})", module.name, module.localversion));
+                Main.info(tr("loading module ''{0}'' (version {1})", module.name, module.localversion));
                 Module mod = module.load(klass);
                 if (moduleList.add(mod)) {
@@ -437,9 +437,9 @@
                 modules = buildListOfModulesToLoad(parent);
             } catch(ExecutionException e) {
-                System.out.println(tr("Warning: failed to download module information list"));
+                Main.warn(tr("Warning: failed to download module information list"));
                 e.printStackTrace();
                 // don't abort in case of error, continue with downloading modules below
             } catch(InterruptedException e) {
-                System.out.println(tr("Warning: failed to download module information list"));
+                Main.warn(tr("Warning: failed to download module information list"));
                 e.printStackTrace();
                 // don't abort in case of error, continue with downloading modules below
@@ -561,12 +561,12 @@
             if (module.exists()) {
                 if (!module.delete() && dowarn) {
-                    System.err.println(tr("Warning: failed to delete outdated module ''{0}''.", module.toString()));
-                    System.err.println(tr("Warning: failed to install already downloaded module ''{0}''. Skipping installation. JOSM is still going to load the old module version.", moduleName));
+                    Main.warn(tr("Warning: failed to delete outdated module ''{0}''.", module.toString()));
+                    Main.warn(tr("Warning: failed to install already downloaded module ''{0}''. Skipping installation. JOSM is still going to load the old module version.", moduleName));
                     continue;
                 }
             }
             if (!updatedModule.renameTo(module) && dowarn) {
-                System.err.println(tr("Warning: failed to install module ''{0}'' from temporary download file ''{1}''. Renaming failed.", module.toString(), updatedModule.toString()));
-                System.err.println(tr("Warning: failed to install already downloaded module ''{0}''. Skipping installation. JOSM is still going to load the old module version.", moduleName));
+                Main.warn(tr("Warning: failed to install module ''{0}'' from temporary download file ''{1}''. Renaming failed.", module.toString(), updatedModule.toString()));
+                Main.warn(tr("Warning: failed to install already downloaded module ''{0}''. Skipping installation. JOSM is still going to load the old module version.", moduleName));
             }
         }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ModuleInformation.java	(revision 30795)
@@ -115,6 +115,5 @@
      * update site.
      *
-     * @param other the module information object retrieved from the update
-     * site
+     * @param other the module information object retrieved from the update site
      */
     public void updateFromModuleSite(ModuleInformation other) {
@@ -149,5 +148,5 @@
                 URL url = new URL(s);
             } catch (MalformedURLException e) {
-                System.out.println(tr("Invalid URL ''{0}'' in module {1}", s, name));
+                Main.error(tr("Invalid URL ''{0}'' in module {1}", s, name));
                 s = null;
             }
@@ -155,6 +154,5 @@
         link = s;
         s = attr.getValue(lang+"Module-Description");
-        if(s == null)
-        {
+        if(s == null) {
             s = attr.getValue("Module-Description");
             if(s != null) {
@@ -173,4 +171,7 @@
                 icon = extractIcon(iconPath, OdPlugin.getInstance().getPluginInformation().file, true);
             }
+            if (icon == null) {
+                Main.error("Unable to load module icon: "+iconPath);
+            }
         }
 
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadLocalModuleInformationTask.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadLocalModuleInformationTask.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadLocalModuleInformationTask.java	(revision 30795)
@@ -14,4 +14,5 @@
 import java.util.Map;
 
+import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
@@ -78,4 +79,5 @@
         File[] siteCacheFiles = modulesDirectory.listFiles(
                 new FilenameFilter() {
+                    @Override
                     public boolean accept(File dir, String name) {
                         return name.matches("^([0-9]+-)?site.*\\.txt$");
@@ -93,5 +95,5 @@
                 processLocalModuleInformationFile(f);
             } catch (ModuleListParseException e) {
-                System.err.println(tr("Warning: Failed to scan file ''{0}'' for module information. Skipping.", fname));
+                Main.warn(tr("Warning: Failed to scan file ''{0}'' for module information. Skipping.", fname));
                 e.printStackTrace();
             }
@@ -103,4 +105,5 @@
         File[] siteCacheFiles = modulesDirectory.listFiles(
                 new FilenameFilter() {
+                    @Override
                     public boolean accept(File dir, String name) {
                         return name.matches("^([0-9]+-)?site.*modules-icons\\.zip$");
@@ -131,4 +134,5 @@
         File[] moduleFiles = modulesDirectory.listFiles(
                 new FilenameFilter() {
+                    @Override
                     public boolean accept(File dir, String name) {
                         return name.endsWith(".jar") || name.endsWith(".jar.new");
@@ -152,5 +156,5 @@
                 }
             } catch(ModuleException e){
-                System.err.println(tr("Warning: Failed to scan file ''{0}'' for module information. Skipping.", fname));
+                Main.warn(tr("Warning: Failed to scan file ''{0}'' for module information. Skipping.", fname));
                 e.printStackTrace();
             }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadRemoteModuleInformationTask.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadRemoteModuleInformationTask.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/modules/ReadRemoteModuleInformationTask.java	(revision 30795)
@@ -278,8 +278,8 @@
             availableModules.addAll(new ModuleListParser().parse(in));
         } catch(UnsupportedEncodingException e) {
-            System.err.println(tr("Failed to parse module list document from site ''{0}''. Skipping site. Exception was: {1}", site, e.toString()));
+            Main.error(tr("Failed to parse module list document from site ''{0}''. Skipping site. Exception was: {1}", site, e.toString()));
             e.printStackTrace();
         } catch(ModuleListParseException e) {
-            System.err.println(tr("Failed to parse module list document from site ''{0}''. Skipping site. Exception was: {1}", site, e.toString()));
+            Main.error(tr("Failed to parse module list document from site ''{0}''. Skipping site. Exception was: {1}", site, e.toString()));
             e.printStackTrace();
         }
Index: /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/NamesFrUtils.java
===================================================================
--- /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/NamesFrUtils.java	(revision 30794)
+++ /applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/util/NamesFrUtils.java	(revision 30795)
@@ -158,5 +158,5 @@
             return label;
         } else {
-            System.err.println("Warning: unknown street label: "+label);
+            Main.warn("unknown street label: "+label);
             return label;
         }
