Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 1464)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 1465)
@@ -16,5 +16,5 @@
 import java.util.Map;
 import java.util.StringTokenizer;
-import java.util.concurrent.Executor;
+import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 import java.util.regex.Matcher;
@@ -27,8 +27,8 @@
 import javax.swing.UIManager;
 
+import org.openstreetmap.josm.actions.SaveAction;
 import org.openstreetmap.josm.actions.downloadtasks.DownloadGpsTask;
 import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask;
 import org.openstreetmap.josm.actions.mapmode.MapMode;
-import org.openstreetmap.josm.actions.SaveAction;
 import org.openstreetmap.josm.actions.search.SearchAction;
 import org.openstreetmap.josm.data.Bounds;
@@ -55,7 +55,7 @@
 import org.openstreetmap.josm.tools.OsmUrlToBounds;
 import org.openstreetmap.josm.tools.PlatformHook;
+import org.openstreetmap.josm.tools.PlatformHookOsx;
 import org.openstreetmap.josm.tools.PlatformHookUnixoid;
 import org.openstreetmap.josm.tools.PlatformHookWindows;
-import org.openstreetmap.josm.tools.PlatformHookOsx;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -74,5 +74,5 @@
      * and sequential.
      */
-    public final static Executor worker = Executors.newSingleThreadExecutor();
+    public final static ExecutorService worker = Executors.newSingleThreadExecutor();
     /**
      * Global application preferences
Index: trunk/src/org/openstreetmap/josm/actions/UpdateDataAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/UpdateDataAction.java	(revision 1464)
+++ trunk/src/org/openstreetmap/josm/actions/UpdateDataAction.java	(revision 1465)
@@ -7,5 +7,4 @@
 import java.awt.event.KeyEvent;
 import java.awt.geom.Area;
-import java.awt.geom.Rectangle2D;
 import java.util.ArrayList;
 import java.util.List;
@@ -14,8 +13,7 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask;
+import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTaskList;
 import org.openstreetmap.josm.data.osm.DataSource;
 import org.openstreetmap.josm.gui.ExtendedDialog;
-import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
 import org.openstreetmap.josm.tools.Shortcut;
 
@@ -74,10 +72,10 @@
                 return;
         }
-        
+
         int result = new ExtendedDialog(Main.parent,
                 tr("Update Data"),
                 tr("This action will require {0} individual download requests. "
                         + "Do you wish to continue?", bboxCount),
-                new String[] { "Update Data", "Cancel" },
+                new String[] { tr("Update Data"), tr("Cancel") },
                 new String[] { "updatedata.png", "cancel.png" }).getValue();
 
@@ -85,9 +83,5 @@
             return;
 
-        DownloadTask osmTask = new DownloadOsmTask();
-        for(Area a : areas) {
-            Rectangle2D td = a.getBounds2D();
-            osmTask.download(null, td.getMinY(), td.getMinX(), td.getMaxY(), td.getMaxX());
-        }
+        new DownloadOsmTaskList().download(false, areas);
     }
 
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 1464)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadGpsTask.java	(revision 1465)
@@ -5,4 +5,5 @@
 
 import java.io.IOException;
+import java.util.concurrent.Future;
 
 import javax.swing.JCheckBox;
@@ -10,13 +11,14 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.DownloadAction;
+import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
+import org.openstreetmap.josm.gui.layer.GpxLayer;
 import org.openstreetmap.josm.gui.layer.Layer;
-import org.openstreetmap.josm.gui.layer.GpxLayer;
-import org.openstreetmap.josm.data.gpx.GpxData;
 import org.openstreetmap.josm.io.BoundingBoxDownloader;
 import org.xml.sax.SAXException;
 
 public class DownloadGpsTask implements DownloadTask {
+    private Future<Task> task = null;
 
     private static class Task extends PleaseWaitRunnable {
@@ -24,12 +26,16 @@
         private GpxData rawData;
         private final boolean newLayer;
+        private String msg = "";
 
-        public Task(boolean newLayer, BoundingBoxDownloader reader) {
+        public Task(boolean newLayer, BoundingBoxDownloader reader, boolean silent, String msg) {
             super(tr("Downloading GPS data"));
+            this.msg = msg;
             this.reader = reader;
             this.newLayer = newLayer;
+            this.silent = silent;
         }
 
         @Override public void realRun() throws IOException, SAXException {
+            Main.pleaseWaitDlg.setCustomText(msg);
             rawData = reader.parseRawGps();
         }
@@ -46,4 +52,6 @@
             else
                 x.mergeFrom(layer);
+
+            Main.pleaseWaitDlg.setCustomText("");
         }
 
@@ -64,4 +72,5 @@
             if (reader != null)
                 reader.cancel();
+            Main.pleaseWaitDlg.cancel.setEnabled(false);
         }
     }
@@ -69,7 +78,18 @@
     private JCheckBox checkBox = new JCheckBox(tr("Raw GPS data"));
 
-    public void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon) {
-        Task task = new Task(action.dialog.newLayer.isSelected(), new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon));
-        Main.worker.execute(task);
+    public void download(DownloadAction action, double minlat, double minlon,
+            double maxlat, double maxlon) {
+        download(action, minlat, minlon, maxlat, maxlon, false, "");
+    }
+
+    public void download(DownloadAction action, double minlat, double minlon,
+            double maxlat, double maxlon, boolean silent, String message) {
+        Task t = new Task(action.dialog.newLayer.isSelected(),
+                new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon),
+                silent,
+                message);
+        // We need submit instead of execute so we can wait for it to finish and get the error
+        // message if necessary. If no one calls getErrorMessage() it just behaves like execute.
+        task = Main.worker.submit(t, t);
     }
 
@@ -85,3 +105,21 @@
         // FIXME this is not currently used
     }
+
+    /*
+     * (non-Javadoc)
+     * @see org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask#getErrorMessage()
+     */
+    public String getErrorMessage() {
+        if(task == null)
+            return "";
+
+        try {
+            Task t = task.get();
+            return t.errorMessage == null
+                ? ""
+                : t.errorMessage;
+        } catch (Exception e) {
+            return "";
+        }
+    }
 }
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 1464)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 1465)
@@ -5,4 +5,5 @@
 
 import java.io.IOException;
+import java.util.concurrent.Future;
 
 import javax.swing.JCheckBox;
@@ -10,14 +11,15 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.DownloadAction;
+import org.openstreetmap.josm.data.Bounds;
+import org.openstreetmap.josm.data.coor.LatLon;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.DataSource;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
 import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
+import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.io.BoundingBoxDownloader;
 import org.openstreetmap.josm.io.OsmServerLocationReader;
 import org.openstreetmap.josm.io.OsmServerReader;
-import org.openstreetmap.josm.data.Bounds;
-import org.openstreetmap.josm.data.coor.LatLon;
 import org.xml.sax.SAXException;
 
@@ -28,6 +30,6 @@
  */
 public class DownloadOsmTask implements DownloadTask {
-
     private static Bounds currentBounds;
+    private Future<Task> task = null;
 
     private static class Task extends PleaseWaitRunnable {
@@ -35,12 +37,18 @@
         private DataSet dataSet;
         private boolean newLayer;
-
-        public Task(boolean newLayer, OsmServerReader reader) {
+        private int num = 1;
+        private String msg = "";
+        
+        public Task(boolean newLayer, OsmServerReader reader, boolean silent,
+                int numLayers, String msg) {
             super(tr("Downloading data"));
+            this.msg = msg;
             this.reader = reader;
             this.newLayer = newLayer;
+            this.silent = silent;
         }
 
         @Override public void realRun() throws IOException, SAXException {
+            Main.pleaseWaitDlg.setCustomText(msg);
             dataSet = reader.parseOsm();
         }
@@ -48,17 +56,21 @@
         @Override protected void finish() {
             if (dataSet == null)
-                return; // user cancelled download or error occoured
+                return; // user canceled download or error occurred
             if (dataSet.allPrimitives().isEmpty()) {
-                errorMessage = tr("No data imported.");
+                // If silent is set to true, we don't want to see information messages
+                if(!silent)
+                    errorMessage = tr("No data imported.");
                 // need to synthesize a download bounds lest the visual indication of downloaded
                 // area doesn't work
                 dataSet.dataSources.add(new DataSource(currentBounds, "OpenStreetMap server"));
             }
-
-            OsmDataLayer layer = new OsmDataLayer(dataSet, tr("Data Layer"), null);
+            
+            OsmDataLayer layer = new OsmDataLayer(dataSet, tr("Data Layer {0}", num), null);
             if (newLayer)
                 Main.main.addLayer(layer);
             else
                 Main.main.editLayer().mergeFrom(layer);
+            
+            Main.pleaseWaitDlg.setCustomText("");
         }
 
@@ -66,9 +78,11 @@
             if (reader != null)
                 reader.cancel();
+            Main.pleaseWaitDlg.cancel.setEnabled(false);
         }
     }
     private JCheckBox checkBox = new JCheckBox(tr("OpenStreetMap data"), true);
 
-    public void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon) {
+    public void download(DownloadAction action, double minlat, double minlon,
+            double maxlat, double maxlon, boolean silent, String message) {
         // Swap min and max if user has specified them the wrong way round
         // (easy to do if you are crossing 0, for example)
@@ -80,17 +94,37 @@
             double t = minlon; minlon = maxlon; maxlon = t;
         }
+        
+        boolean newLayer = action != null
+                                && (action.dialog == null || action.dialog.newLayer.isSelected());
 
-        Task task = new Task(action != null && (action.dialog == null || action.dialog.newLayer.isSelected()), new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon));
+        Task t = new Task(newLayer,
+                new BoundingBoxDownloader(minlat, minlon, maxlat, maxlon),
+                silent,
+                getDataLayersCount(),
+                message);
         currentBounds = new Bounds(new LatLon(minlat, minlon), new LatLon(maxlat, maxlon));
-        Main.worker.execute(task);
+        // We need submit instead of execute so we can wait for it to finish and get the error 
+        // message if necessary. If no one calls getErrorMessage() it just behaves like execute.
+        task = Main.worker.submit(t, t);       
+    }
+    
+    public void download(DownloadAction action, double minlat, double minlon,
+            double maxlat, double maxlon) {
+        download(action, minlat, minlon, maxlat, maxlon, false, "");
     }
 
+    /**
+     * Loads a given URL from the OSM Server
+     * @param True if the data should be saved to a new layer
+     * @param The URL as String
+     */
     public void loadUrl(boolean new_layer, String url) {
-        Task task = new Task(new_layer, new OsmServerLocationReader(url));
-        Main.worker.execute(task);
+        Task t = new Task(new_layer,
+                new OsmServerLocationReader(url),
+                false,
+                getDataLayersCount(),
+                "");
+        task = Main.worker.submit(t, t);
     }
-
-
-
 
     public JCheckBox getCheckBox() {
@@ -101,3 +135,35 @@
         return "osm";
     }
+    
+    /**
+     * Finds the number of data layers currently opened
+     * @return Number of data layers
+     */
+    private int getDataLayersCount() {
+        if(Main.map == null || Main.map.mapView == null)
+            return 0;
+        int num = 0;
+        for(Layer l : Main.map.mapView.getAllLayers())
+            if(l instanceof OsmDataLayer)
+                num++;
+        return num;
+    }
+    
+   /*
+    * (non-Javadoc)
+    * @see org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask#getErrorMessage()
+    */
+    public String getErrorMessage() {
+        if(task == null)
+            return "";        
+
+        try {
+            Task t = task.get();
+            return t.errorMessage == null
+                ? ""
+                : t.errorMessage;
+        } catch (Exception e) {
+            return "";
+        }
+    }
 }
Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskList.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskList.java	(revision 1465)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTaskList.java	(revision 1465)
@@ -0,0 +1,92 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.actions.downloadtasks;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.awt.geom.Area;
+import java.awt.geom.Rectangle2D;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.swing.JOptionPane;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.DataSet;
+import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
+import org.openstreetmap.josm.gui.layer.Layer;
+import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+
+/**
+ * This class encapsulates the downloading of several bounding boxes that would otherwise be too
+ * large to download in one go. Error messages will be collected for all downloads and displayed
+ * as a list in the end.
+ * @author xeen
+ *
+ */
+public class DownloadOsmTaskList implements Runnable {
+    private List<DownloadTask> osmTasks = new LinkedList<DownloadTask>();
+
+    /**
+     * Downloads a list of areas from the OSM Server
+     * @param newLayer Set to true if all areas should be put into a single new layer
+     * @param The List of Rectangle2D to download
+     */
+    public void download(boolean newLayer, List<Rectangle2D> rects) {
+        if(newLayer) {
+            Layer l = new OsmDataLayer(new DataSet(), tr("Data Layer"), null);
+            Main.main.addLayer(l);
+            Main.map.mapView.setActiveLayer(l);
+        }
+
+        int i = 0;
+        for(Rectangle2D td : rects) {
+            i++;
+            DownloadTask dt = new DownloadOsmTask();
+            dt.download(null, td.getMinY(), td.getMinX(), td.getMaxY(), td.getMaxX(), true,
+                    tr("Download {0} of {1} ({2} left)", i, rects.size(), rects.size()-i));
+            osmTasks.add(dt);
+        }
+
+        // If we try to get the error message now the download task will never have been started
+        // and we'd be stuck in a classical dead lock. Instead attach this to the worker and once
+        // run() gets called all downloadTasks have finished and we can grab the error messages.
+        Main.worker.execute(this);
+    }
+
+    /**
+     * Downloads a list of areas from the OSM Server
+     * @param newLayer Set to true if all areas should be put into a single new layer
+     * @param The Collection of Areas to download
+     */
+    public void download(boolean newLayer, Collection<Area> areas) {
+        List<Rectangle2D> rects = new LinkedList<Rectangle2D>();
+        for(Area a : areas)
+            rects.add(a.getBounds2D());
+
+        download(newLayer, rects);
+    }
+
+    /**
+     * Grabs and displays the error messages after all download threads have finished.
+     */
+    public void run() {
+        String errors = "";
+
+        for(DownloadTask dt : osmTasks) {
+            String err = dt.getErrorMessage();
+            if(err.equals(""))
+                continue;
+            errors += "* " + err + "\r\n";
+        }
+
+        osmTasks.clear();
+        if(errors.equals(""))
+            return;
+
+        JOptionPane.showMessageDialog(Main.parent,
+                tr("The following errors occured during mass download:") + "\r\n" + errors,
+                tr("Errors during Download"),
+                JOptionPane.ERROR_MESSAGE);
+    }
+}
Index: trunk/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java	(revision 1464)
+++ trunk/src/org/openstreetmap/josm/gui/PleaseWaitDialog.java	(revision 1465)
@@ -26,4 +26,5 @@
 
     public final JLabel currentAction = new JLabel(I18n.tr("Contacting the OSM server..."));
+    private final JLabel customText = new JLabel("");
     public final BoundedRangeModel progress = progressBar.getModel();
     public final JButton cancel = new JButton(I18n.tr("Cancel"));
@@ -35,8 +36,10 @@
         pane.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
         pane.add(currentAction, GBC.eol().fill(GBC.HORIZONTAL));
+        pane.add(customText, GBC.eol().fill(GBC.HORIZONTAL));
         pane.add(progressBar, GBC.eop().fill(GBC.HORIZONTAL));
         pane.add(cancel, GBC.eol().anchor(GBC.CENTER));
         setContentPane(pane);
-        setSize(Main.pref.getInteger("progressdialog.size",600),100);
+        //setSize(Main.pref.getInteger("progressdialog.size",600),100);
+        setCustomText("");
         setLocationRelativeTo(Main.parent);
         addComponentListener(new ComponentListener() {
@@ -56,3 +59,19 @@
         progressBar.setIndeterminate(newValue);
     }
+    
+    /**
+     * Sets a custom text line below currentAction. Can be used to display additional information
+     * @param text
+     */
+    public void setCustomText(String text) {
+        if(text.length() == 0) {
+            customText.setVisible(false);
+            setSize(Main.pref.getInteger("progressdialog.size", 600), 100);
+            return;
+        }
+        
+        customText.setVisible(true);
+        customText.setText(text);
+        setSize(Main.pref.getInteger("progressdialog.size", 600), 120);
+    }
 }
Index: trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java	(revision 1464)
+++ trunk/src/org/openstreetmap/josm/gui/PleaseWaitRunnable.java	(revision 1465)
@@ -25,5 +25,5 @@
  */
 public abstract class PleaseWaitRunnable implements Runnable {
-
+    public boolean silent = false;
     public String errorMessage;
 
@@ -66,4 +66,6 @@
             // reset dialog state
             Main.pleaseWaitDlg.setTitle(title);
+            Main.pleaseWaitDlg.cancel.setEnabled(true);
+            Main.pleaseWaitDlg.setCustomText("");
             errorMessage = null;
             closeDialogCalled = false;
@@ -131,5 +133,5 @@
                         Main.pleaseWaitDlg.dispose();
                     }
-                    if (errorMessage != null)
+                    if (errorMessage != null && !silent)
                         JOptionPane.showMessageDialog(Main.parent, errorMessage);
                 }
Index: trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 1464)
+++ trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 1465)
@@ -51,12 +51,29 @@
     public interface DownloadTask {
         /**
-         * Execute the download.
-         */
-        void download(DownloadAction action, double minlat, double minlon, double maxlat, double maxlon);
+         * Execute the download using the given bounding box
+         */
+        void download(DownloadAction action, double minlat, double minlon,
+                double maxlat, double maxlon);
+
+        /**
+         * Execute the download using the given bounding box. Set silent to true if no error
+         * messages should be popped up. Message can be used to display an additional text below
+         * the default description.
+         */
+        void download(DownloadAction action, double minlat, double minlon,
+                double maxlat, double maxlon, boolean silent, String message);
+
+        /**
+         * Execute the download using the given URL
+         * @param newLayer
+         * @param url
+         */
         void loadUrl(boolean newLayer, String url);
+
         /**
          * @return The checkbox presented to the user
          */
         JCheckBox getCheckBox();
+
         /**
          * @return The name of the preferences suffix to use for storing the
@@ -64,4 +81,15 @@
          */
         String getPreferencesSuffix();
+
+        /**
+         * Gets the error message of the task once it executed. If there is no error message, an empty
+         * string is returned.
+         *
+         * WARNING: Never call this in the same thread you requested the download() or it will cause a
+         * dead lock. See actions/downloadTasks/DownloadOsmTaskList.java for a proper implementation.
+         *
+         * @return Error message or empty String
+         */
+        String getErrorMessage();
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 1464)
+++ trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java	(revision 1465)
@@ -16,8 +16,7 @@
 import java.awt.geom.Area;
 import java.awt.geom.Rectangle2D;
-import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
+import java.text.DateFormat;
+import java.text.DecimalFormat;
 import java.io.InputStreamReader;
 import java.net.URL;
@@ -30,9 +29,7 @@
 import java.util.Comparator;
 import java.util.Iterator;
+import java.util.Date;
 import java.util.LinkedList;
-import java.util.Date;
 import java.util.List;
-import java.text.DateFormat;
-import java.text.DecimalFormat;
 
 import javax.swing.AbstractAction;
@@ -40,5 +37,4 @@
 import javax.swing.ButtonGroup;
 import javax.swing.Icon;
-import javax.swing.JCheckBox;
 import javax.swing.JColorChooser;
 import javax.swing.JFileChooser;
@@ -50,5 +46,4 @@
 import javax.swing.JRadioButton;
 import javax.swing.JSeparator;
-import javax.swing.JTextField;
 import javax.swing.filechooser.FileFilter;
 
@@ -57,5 +52,5 @@
 import org.openstreetmap.josm.actions.SaveAction;
 import org.openstreetmap.josm.actions.SaveAsAction;
-import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask;
+import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTaskList;
 import org.openstreetmap.josm.data.coor.EastNorth;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -71,9 +66,6 @@
 import org.openstreetmap.josm.gui.dialogs.LayerListDialog;
 import org.openstreetmap.josm.gui.dialogs.LayerListPopup;
-import org.openstreetmap.josm.gui.download.DownloadDialog.DownloadTask;
 import org.openstreetmap.josm.gui.layer.markerlayer.AudioMarker;
 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
-import org.openstreetmap.josm.io.GpxWriter;
-import org.openstreetmap.josm.io.MultiPartFormOutputStream;
 import org.openstreetmap.josm.tools.DontShowAgainInfo;
 import org.openstreetmap.josm.tools.GBC;
@@ -380,8 +372,8 @@
         {-ll0,-sl9,-ll0,+sl9}
     };
-    
+
     // the different color modes
     enum colorModes { none, velocity, dilution }
-    
+
     @Override public void paint(Graphics g, MapView mv) {
 
@@ -392,15 +384,15 @@
         Color neutralColor = getColor(name);
         // also draw lines between points belonging to different segments
-        boolean forceLines = Main.pref.getBoolean("draw.rawgps.lines.force");   
+        boolean forceLines = Main.pref.getBoolean("draw.rawgps.lines.force");
         // draw direction arrows on the lines
-        boolean direction = Main.pref.getBoolean("draw.rawgps.direction");   
+        boolean direction = Main.pref.getBoolean("draw.rawgps.direction");
         // don't draw lines if longer than x meters
-        int maxLineLength = Main.pref.getInteger("draw.rawgps.max-line-length", -1);        
+        int maxLineLength = Main.pref.getInteger("draw.rawgps.max-line-length", -1);
         // draw line between points, global setting
-        boolean lines = Main.pref.getBoolean("draw.rawgps.lines");                                
+        boolean lines = Main.pref.getBoolean("draw.rawgps.lines");
         String linesKey = "draw.rawgps.lines.layer "+name;
         // draw lines, per-layer setting
         if (Main.pref.hasKey(linesKey))
-            lines = Main.pref.getBoolean(linesKey);    
+            lines = Main.pref.getBoolean(linesKey);
         // paint large dots for points
         boolean large = Main.pref.getBoolean("draw.rawgps.large");
@@ -408,12 +400,12 @@
         colorModes colored = colorModes.none;
         try {
-            colored = colorModes.values()[Main.pref.getInteger("draw.rawgps.colors", 0)]; 
+            colored = colorModes.values()[Main.pref.getInteger("draw.rawgps.colors", 0)];
         } catch(Exception e) { }
         // paint direction arrow with alternate math. may be faster
-        boolean alternatedirection = Main.pref.getBoolean("draw.rawgps.alternatedirection");    
+        boolean alternatedirection = Main.pref.getBoolean("draw.rawgps.alternatedirection");
         // don't draw arrows nearer to each other than this
-        int delta = Main.pref.getInteger("draw.rawgps.min-arrow-distance", 0);        
+        int delta = Main.pref.getInteger("draw.rawgps.min-arrow-distance", 0);
         // allows to tweak line coloring for different speed levels.
-        int colorTracksTune = Main.pref.getInteger("draw.rawgps.colorTracksTune", 45); 
+        int colorTracksTune = Main.pref.getInteger("draw.rawgps.colorTracksTune", 45);
         /****************************************************************
          ********** STEP 2a - CHECK CACHE VALIDITY **********************
@@ -460,5 +452,5 @@
                                         trkPnt.customColoring = colors[(int) (velColor)];
                                     break;
-                                
+
                                 case dilution:
                                     if(trkPnt.attr.get("hdop") != null) {
@@ -470,5 +462,5 @@
                                         trkPnt.customColoring = colors[hdopcolor];
                                     }
-                                    break;                                
+                                    break;
                             }
 
@@ -806,11 +798,5 @@
             }
 
-            // FIXME: DownloadTask's "please wait" dialog should display the number of
-            // downloads left, and "cancel" needs to be honoured. An error along the way
-            // should abort the whole process.
-            DownloadTask osmTask = new DownloadOsmTask();
-            for (Rectangle2D td : toDownload) {
-               osmTask.download(null, td.getMinY(), td.getMinX(), td.getMaxY(), td.getMaxX());
-            }
+            new DownloadOsmTaskList().download(false, toDownload);
         }
     }
Index: trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java	(revision 1464)
+++ trunk/src/org/openstreetmap/josm/io/BoundingBoxDownloader.java	(revision 1465)
@@ -93,7 +93,7 @@
             Main.pleaseWaitDlg.progress.setValue(0);
             Main.pleaseWaitDlg.currentAction.setText(tr("Contacting OSM Server..."));
-            Main.pleaseWaitDlg.setIndeterminate(true); 
+            Main.pleaseWaitDlg.setIndeterminate(true);
             final InputStream in = getInputStream("map?bbox="+lon1+","+lat1+","+lon2+","+lat2, Main.pleaseWaitDlg);
-            Main.pleaseWaitDlg.setIndeterminate(false); 
+            Main.pleaseWaitDlg.setIndeterminate(false);
             if (in == null)
                 return null;
Index: trunk/styles/standard/elemstyles.xml
===================================================================
--- trunk/styles/standard/elemstyles.xml	(revision 1464)
+++ trunk/styles/standard/elemstyles.xml	(revision 1465)
@@ -51,5 +51,5 @@
 	<rule>
 		<condition k="restriction" v="no_left_turn"/>
-		<icon annotate="true" src="vehicle/restrictions/turn_restrictions/no_left_turn.png"/>
+		<icon annotate="true" src="vehicle/restriction/turn_restrictions/no_left_turn.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>40000</scale_max>
@@ -57,5 +57,5 @@
 	<rule>
 		<condition k="restriction" v="no_right_turn"/>
-		<icon annotate="true" src="vehicle/restrictions/turn_restrictions/no_right_turn.png"/>
+		<icon annotate="true" src="vehicle/restriction/turn_restrictions/no_right_turn.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>40000</scale_max>
@@ -63,5 +63,5 @@
 	<rule>
 		<condition k="restriction" v="no_straight_on"/>
-		<icon annotate="true" src="vehicle/restrictions/turn_restrictions/no_straight_on.png"/>
+		<icon annotate="true" src="vehicle/restriction/turn_restrictions/no_straight_on.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>40000</scale_max>
@@ -69,5 +69,5 @@
 	<rule>
 		<condition k="restriction" v="no_u_turn"/>
-		<icon annotate="true" src="vehicle/restrictions/turn_restrictions/no_u_turn.png"/>
+		<icon annotate="true" src="vehicle/restriction/turn_restrictions/no_u_turn.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>40000</scale_max>
@@ -75,5 +75,5 @@
 	<rule>
 		<condition k="restriction" v="only_left_turn"/>
-		<icon annotate="true" src="vehicle/restrictions/turn_restrictions/only_left_turn.png"/>
+		<icon annotate="true" src="vehicle/restriction/turn_restrictions/only_left_turn.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>40000</scale_max>
@@ -81,5 +81,5 @@
 	<rule>
 		<condition k="restriction" v="only_right_turn"/>
-		<icon annotate="true" src="vehicle/restrictions/turn_restrictions/only_right_turn.png"/>
+		<icon annotate="true" src="vehicle/restriction/turn_restrictions/only_right_turn.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>40000</scale_max>
@@ -87,5 +87,5 @@
 	<rule>
 		<condition k="restriction" v="only_straight_on"/>
-		<icon annotate="true" src="vehicle/restrictions/turn_restrictions/only_straight_on.png"/>
+		<icon annotate="true" src="vehicle/restriction/turn_restrictions/only_straight_on.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>40000</scale_max>
@@ -170,5 +170,5 @@
 	<rule>
 		<condition k="access" b="no"/>
-		<icon src="vehicle/restrictions/access.png"/>
+		<icon src="vehicle/restriction/access.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -198,5 +198,5 @@
 	<rule>
 		<condition k="bicycle" b="no"/>
-		<icon src="vehicle/restrictions/bicycle.png"/>
+		<icon src="vehicle/restriction/bicycle.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -205,5 +205,5 @@
 		<condition k="bicycle" v="designated"/>
 		<line width="1" realwidth="2" colour="bicycle#ff00ff"/>
-		<icon annotate="true" src="vehicle/restrictions/bicycle-designated.png"/>
+		<icon annotate="true" src="vehicle/restriction/bicycle-designated.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -212,5 +212,5 @@
 	<rule>
 		<condition k="foot" b="no"/>
-		<icon src="vehicle/restrictions/foot.png"/>
+		<icon src="vehicle/restriction/foot.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -219,5 +219,5 @@
 		<condition k="foot" v="designated"/>
 		<line width="1" realwidth="1" colour="foot#00ff00"/>
-		<icon annotate="true" src="vehicle/restrictions/foot-designated.png"/>
+		<icon annotate="true" src="vehicle/restriction/foot-designated.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>10000</scale_max>
@@ -226,5 +226,5 @@
 	<rule>
 		<condition k="goods" b="no"/>
-		<icon src="vehicle/restrictions/goods.png"/>
+		<icon src="vehicle/restriction/goods.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -233,5 +233,5 @@
 	<rule>
 		<condition k="hgv" b="no"/>
-		<icon src="vehicle/restrictions/goods.png"/>
+		<icon src="vehicle/restriction/goods.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -240,5 +240,5 @@
 	<rule>
 		<condition k="horse" b="no"/>
-		<icon src="vehicle/restrictions/horse.png"/>
+		<icon src="vehicle/restriction/horse.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -247,5 +247,5 @@
 		<condition k="horse" v="designated"/>
 		<line width="1" realwidth="2" colour="horse#c08000"/>
-		<icon src="vehicle/restrictions/horse-designated.png"/>
+		<icon src="vehicle/restriction/horse-designated.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>30000</scale_max>
@@ -254,5 +254,5 @@
 	<rule>
 		<condition k="motorcycle" b="no"/>
-		<icon src="vehicle/restrictions/motorbike.png"/>
+		<icon src="vehicle/restriction/motorbike.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -261,5 +261,5 @@
 	<rule>
 		<condition k="motorcar" b="no"/>
-		<icon src="vehicle/restrictions/motorcar.png"/>
+		<icon src="vehicle/restriction/motorcar.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -268,5 +268,5 @@
 	<rule>
 		<condition k="psv" b="no"/>
-		<icon src="vehicle/restrictions/psv.png"/>
+		<icon src="vehicle/restriction/psv.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -289,5 +289,5 @@
 	<rule>
 		<condition k="noexit" b="yes"/>
-		<icon src="vehicle/restrictions/dead_end.png"/>
+		<icon src="vehicle/restriction/dead_end.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -296,5 +296,5 @@
 	<rule>
 		<condition k="maxweight"/>
-		<icon src="vehicle/restrictions/maxweight.png"/>
+		<icon src="vehicle/restriction/maxweight.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -303,5 +303,5 @@
 	<rule>
 		<condition k="maxheight"/>
-		<icon src="vehicle/restrictions/maxheight.png"/>
+		<icon src="vehicle/restriction/maxheight.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -310,5 +310,5 @@
 	<rule>
 		<condition k="maxwidth"/>
-		<icon src="vehicle/restrictions/maxwidth.png"/>
+		<icon src="vehicle/restriction/maxwidth.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -317,5 +317,5 @@
 	<rule>
 		<condition k="maxlength"/>
-		<icon src="vehicle/restrictions/maxlength.png"/>
+		<icon src="vehicle/restriction/maxlength.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -324,5 +324,5 @@
 	<rule>
 		<condition k="maxspeed"/>
-		<icon src="vehicle/restrictions/speed.png"/>
+		<icon src="vehicle/restriction/speed.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -331,5 +331,5 @@
 	<rule>
 		<condition k="minspeed"/>
-		<icon src="vehicle/restrictions/minspeed.png"/>
+		<icon src="vehicle/restriction/minspeed.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -352,5 +352,5 @@
 	<rule>
 		<condition k="barrier" v="bollard"/>
-		<icon annotate="true" src="vehicle/restrictions/bollard.png"/>
+		<icon annotate="true" src="vehicle/restriction/bollard.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -599,5 +599,5 @@
 	<rule>
 		<condition k="highway" v="mini_roundabout"/>
-		<icon annotate="true" src="vehicle/restrictions/roundabout_left.png"/>
+		<icon annotate="true" src="vehicle/restriction/roundabout_left.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -606,5 +606,5 @@
 	<rule>
 		<condition k="highway" v="stop"/>
-		<icon annotate="true" src="vehicle/restrictions/stop.png"/>
+		<icon annotate="true" src="vehicle/restriction/stop.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -613,5 +613,5 @@
 	<rule>
 		<condition k="highway" v="traffic_signals"/>
-		<icon annotate="true" src="vehicle/restrictions/traffic-light.png"/>
+		<icon annotate="true" src="vehicle/restriction/traffic-light.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -620,5 +620,5 @@
 	<rule>
 		<condition k="highway" v="speed_camera"/>
-		<icon annotate="true" src="vehicle/restrictions/speed_trap.png"/>
+		<icon annotate="true" src="vehicle/restriction/speed_trap.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -627,5 +627,5 @@
 	<rule>
 		<condition k="traffic_sign" v="city_limit"/>
-		<icon annotate="true" src="vehicle/restrictions/citylimit.png"/>
+		<icon annotate="true" src="vehicle/restriction/citylimit.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>40000</scale_max>
@@ -655,5 +655,5 @@
 	<rule>
 		<condition k="highway" v="toll_booth"/>
-		<icon annotate="true" src="vehicle/toll_station.png"/>
+		<icon annotate="true" src="vehicle/toll_booth.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -662,5 +662,5 @@
 	<rule>
 		<condition k="highway" v="incline"/>
-		<icon annotate="true" src="vehicle/restrictions/incline.png"/>
+		<icon annotate="true" src="vehicle/restriction/incline.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -669,5 +669,5 @@
 	<rule>
 		<condition k="highway" v="incline_steep"/>
-		<icon annotate="true" src="vehicle/restrictions/incline.png"/>
+		<icon annotate="true" src="vehicle/restriction/incline.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -1213,5 +1213,5 @@
 		<condition k="piste:difficulty" v="easy"/>
 		<line width="6" colour="piste_easy#0000ff"/>
-		<icon src="sports/skiing.png"/>
+		<icon src="sport/skiing.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>30000</scale_max>
@@ -1221,5 +1221,5 @@
 		<condition k="piste:difficulty" v="intermediate"/>
 		<line width="6" colour="piste_intermediate#ff0000"/>
-		<icon src="sports/skiing.png"/>
+		<icon src="sport/skiing.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>30000</scale_max>
@@ -1229,5 +1229,5 @@
 		<condition k="piste:difficulty" v="advanced"/>
 		<line width="6" colour="piste_advanced#606060"/>
-		<icon src="sports/skiing.png"/>
+		<icon src="sport/skiing.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>30000</scale_max>
@@ -1237,5 +1237,5 @@
 		<condition k="piste:difficulty" v="freeride"/>
 		<line width="6" colour="piste_freeride#ffff00"/>
-		<icon src="sports/skiing.png"/>
+		<icon src="sport/skiing.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>30000</scale_max>
@@ -1245,5 +1245,5 @@
 		<condition k="piste:difficulty" v="novice"/>
 		<line width="6" colour="piste_novice#00ff00"/>
-		<icon src="sports/skiing.png"/>
+		<icon src="sport/skiing.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>300000</scale_max>
@@ -1353,5 +1353,5 @@
 		<condition k="man_made" v="pier"/>
 		<line width="2" colour="pier#660000"/>
-		<icon annotate="true" src="misc/landmark/pier.png"/>
+		<icon annotate="true" src="nautical/pier.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -1442,5 +1442,5 @@
 	<rule>
 		<condition k="leisure" v="sports_centre"/>
-		<icon annotate="true" src="sports/centre.png"/>
+		<icon annotate="true" src="sport/centre.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1450,5 +1450,5 @@
 	<rule>
 		<condition k="leisure" v="golf_course"/>
-		<icon annotate="true" src="sports/golf.png"/>
+		<icon annotate="true" src="sport/golf.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1458,5 +1458,5 @@
 	<rule>
 		<condition k="leisure" v="stadium"/>
-		<icon annotate="true" src="sports/stadium.png"/>
+		<icon annotate="true" src="sport/stadium.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1466,5 +1466,5 @@
 	<rule>
 		<condition k="leisure" v="track"/>
-		<icon annotate="true" src="sports/track.png"/>
+		<icon annotate="true" src="sport/track.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1474,5 +1474,5 @@
 	<rule>
 		<condition k="leisure" v="pitch"/>
-		<icon annotate="true" src="sports/pitch.png"/>
+		<icon annotate="true" src="sport/pitch.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1482,5 +1482,5 @@
 	<rule>
 		<condition k="leisure" v="water_park"/>
-		<icon annotate="true" src="recreation/water_park.png"/>
+		<icon annotate="true" src="leisure/water_park.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1506,5 +1506,5 @@
 	<rule>
 		<condition k="leisure" v="fishing"/>
-		<icon annotate="true" src="sports/fishing.png"/>
+		<icon annotate="true" src="sport/fishing.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1514,5 +1514,5 @@
 	<rule>
 		<condition k="leisure" v="nature_reserve"/>
-		<icon annotate="true" src="recreation/nature_reserve.png"/>
+		<icon annotate="true" src="leisure/nature_reserve.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1522,5 +1522,5 @@
 	<rule>
 		<condition k="leisure" v="park"/>
-		<icon annotate="true" src="recreation/park.png"/>
+		<icon annotate="true" src="leisure/park.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1530,5 +1530,5 @@
 	<rule>
 		<condition k="leisure" v="playground"/>
-		<icon annotate="true" src="recreation/playground.png"/>
+		<icon annotate="true" src="leisure/playground.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1538,5 +1538,5 @@
 	<rule>
 		<condition k="leisure" v="garden"/>
-		<icon annotate="true" src="recreation/garden.png"/>
+		<icon annotate="true" src="leisure/garden.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1546,5 +1546,5 @@
 	<rule>
 		<condition k="leisure" v="common"/>
-		<icon annotate="true" src="recreation/common.png"/>
+		<icon annotate="true" src="leisure/common.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1554,5 +1554,5 @@
 	<rule>
 		<condition k="leisure" v="swimming_pool"/>
-		<icon annotate="true" src="sports/pool.png"/>
+		<icon annotate="true" src="sport/pool.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1562,5 +1562,5 @@
 	<rule>
 		<condition k="leisure" v="miniature_golf"/>
-		<icon annotate="true" src="sports/golf.png"/>
+		<icon annotate="true" src="sport/golf.png"/>
 		<area colour="leisure#c7f1a3"/>
 		<scale_min>1</scale_min>
@@ -1588,5 +1588,5 @@
 	<rule>
 		<condition k="amenity" v="nightclub"/>
-		<icon annotate="true" src="recreation/nightclub.png"/>
+		<icon annotate="true" src="leisure/nightclub.png"/>
 		<area colour="amenity#ecba52"/>
 		<scale_min>1</scale_min>
@@ -1676,5 +1676,5 @@
 	<rule>
 		<condition k="amenity" v="bicycle_rental"/>
-		<icon annotate="true" src="vehicle/bicycle_rental.png"/>
+		<icon annotate="true" src="vehicle/rental/bicycle.png"/>
 		<area colour="amenity_traffic#f7efb7"/>
 		<scale_min>1</scale_min>
@@ -1684,5 +1684,5 @@
 	<rule>
 		<condition k="amenity" v="car_rental"/>
-		<icon annotate="true" src="vehicle/car_rental.png"/>
+		<icon annotate="true" src="vehicle/rental/car.png"/>
 		<area colour="amenity_traffic#f7efb7"/>
 		<scale_min>1</scale_min>
@@ -1716,5 +1716,5 @@
 	<rule>
 		<condition k="amenity" v="fuel"/>
-		<icon annotate="true" src="vehicle/fuel_station.png"/>
+		<icon annotate="true" src="vehicle/fuel.png"/>
 		<area colour="amenity_traffic#f7efb7"/>
 		<scale_min>1</scale_min>
@@ -1724,5 +1724,5 @@
 	<rule>
 		<condition k="amenity" v="telephone"/>
-		<icon annotate="true" src="public/telephone.png"/>
+		<icon annotate="true" src="service/telephone.png"/>
 		<area colour="amenity_light#f7efb7"/>
 		<scale_min>1</scale_min>
@@ -1740,5 +1740,5 @@
 	<rule>
 		<condition k="amenity" v="toilets"/>
-		<icon annotate="true" src="public/toilets.png"/>
+		<icon annotate="true" src="service/toilets.png"/>
 		<area colour="amenity_light#f7efb7"/>
 		<scale_min>1</scale_min>
@@ -1748,5 +1748,5 @@
 	<rule>
 		<condition k="amenity" v="recycling"/>
-		<icon annotate="true" src="public/recycling.png"/>
+		<icon annotate="true" src="service/recycling.png"/>
 		<area colour="amenity_light#f7efb7"/>
 		<scale_min>1</scale_min>
@@ -1898,5 +1898,5 @@
 	<rule>
 		<condition k="amenity" v="post_office"/>
-		<icon annotate="true" src="public/post_office.png"/>
+		<icon annotate="true" src="service/post_office.png"/>
 		<area colour="amenity_light#f7efb7"/>
 		<scale_min>1</scale_min>
@@ -1906,5 +1906,5 @@
 	<rule>
 		<condition k="amenity" v="post_box"/>
-		<icon annotate="true" src="public/post_box.png"/>
+		<icon annotate="true" src="service/post_box.png"/>
 		<area colour="amenity_light#f7efb7"/>
 		<scale_min>1</scale_min>
@@ -2003,5 +2003,5 @@
 		<condition k="amenity" v="library"/>
 		<area colour="amenity_light#f7efb7"/>
-		<icon annotate="true" src="shopping/rental/library.png"/>
+		<icon annotate="true" src="shop/rental/library.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -2011,5 +2011,5 @@
 		<condition k="amenity" v="police"/>
 		<area colour="amenity_light#f7efb7"/>
-		<icon annotate="true" src="public/police.png"/>
+		<icon annotate="true" src="service/police.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -2019,5 +2019,5 @@
 		<condition k="amenity" v="fire_station"/>
 		<area colour="amenity_light#f7efb7"/>
-		<icon annotate="true" src="public/firebrigade.png"/>
+		<icon annotate="true" src="service/firebrigade.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -2043,5 +2043,5 @@
 		<condition k="amenity" v="theatre"/>
 		<area colour="amenity_light#f7efb7"/>
-		<icon annotate="true" src="recreation/theater.png"/>
+		<icon annotate="true" src="leisure/theater.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -2051,5 +2051,5 @@
 		<condition k="amenity" v="cinema"/>
 		<area colour="amenity_light#f7efb7"/>
-		<icon annotate="true" src="recreation/cinema.png"/>
+		<icon annotate="true" src="leisure/cinema.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -2059,5 +2059,5 @@
 		<condition k="amenity" v="arts_centre"/>
 		<area colour="amenity_light#f7efb7"/>
-		<icon annotate="true" src="public/arts_centre.png"/>
+		<icon annotate="true" src="service/arts_centre.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -2067,5 +2067,5 @@
 		<condition k="amenity" v="courthouse"/>
 		<area colour="amenity_light#f7efb7"/>
-		<icon annotate="true" src="public/administration/court_of_law.png"/>
+		<icon annotate="true" src="service/administration/court_of_law.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -2075,5 +2075,5 @@
 		<condition k="amenity" v="prison"/>
 		<area colour="amenity_light#f7efb7"/>
-		<icon annotate="true" src="public/administration/prison.png"/>
+		<icon annotate="true" src="service/administration/prison.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -2107,5 +2107,5 @@
 		<condition k="amenity" v="bench"/>
 		<area colour="amenity_light#f7efb7"/>
-		<icon annotate="true" src="recreation/bench.png"/>
+		<icon annotate="true" src="leisure/bench.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -2146,5 +2146,5 @@
 	<rule>
 		<condition k="amenity" v="signpost"/>
-		<icon annotate="true" src="places/locality.png"/>
+		<icon annotate="true" src="place/locality.png"/>
 		<line width="2" realwidth="5" dashed="true" colour="deprecated#ff0000"/>
 		<scale_min>1</scale_min>
@@ -2156,5 +2156,5 @@
 	<rule>
 		<condition k="shop" v="supermarket"/>
-		<icon annotate="true" src="shopping/supermarket.png"/>
+		<icon annotate="true" src="shop/supermarket.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2164,5 +2164,5 @@
 	<rule>
 		<condition k="shop" v="convenience"/>
-		<icon annotate="true" src="shopping/supermarket.png"/>
+		<icon annotate="true" src="shop/supermarket.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2172,5 +2172,5 @@
 	<rule>
 		<condition k="shop" v="bakery"/>
-		<icon annotate="true" src="shopping/groceries/bakery.png"/>
+		<icon annotate="true" src="shop/groceries/bakery.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2180,5 +2180,5 @@
 	<rule>
 		<condition k="shop" v="butcher"/>
-		<icon annotate="true" src="shopping/groceries/butcher.png"/>
+		<icon annotate="true" src="shop/groceries/butcher.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2188,5 +2188,5 @@
 	<rule>
 		<condition k="shop" v="bicycle"/>
-		<icon annotate="true" src="sports/bicycle.png"/>
+		<icon annotate="true" src="sport/bicycle.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2196,5 +2196,5 @@
 	<rule>
 		<condition k="shop" v="doityourself"/>
-		<icon annotate="true" src="shopping/diy_store.png"/>
+		<icon annotate="true" src="shop/diy_store.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2204,5 +2204,5 @@
 	<rule>
 		<condition k="shop" v="dry_cleaning"/>
-		<icon annotate="true" src="shopping/laundry.png"/>
+		<icon annotate="true" src="shop/laundry.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2212,5 +2212,5 @@
 	<rule>
 		<condition k="shop" v="laundry"/>
-		<icon annotate="true" src="shopping/laundry.png"/>
+		<icon annotate="true" src="shop/laundry.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2220,5 +2220,5 @@
 	<rule>
 		<condition k="shop" v="outdoor"/>
-		<icon annotate="true" src="shopping/sports/outdoor.png"/>
+		<icon annotate="true" src="shop/sports/outdoor.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2228,5 +2228,5 @@
 	<rule>
 		<condition k="shop" v="kiosk"/>
-		<icon annotate="true" src="shopping/kiosk.png"/>
+		<icon annotate="true" src="shop/kiosk.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2236,5 +2236,5 @@
 	<rule>
 		<condition k="shop" v="beverages"/>
-		<icon annotate="true" src="shopping/beverages.png"/>
+		<icon annotate="true" src="shop/beverages.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2244,5 +2244,5 @@
 	<rule>
 		<condition k="shop" v="books"/>
-		<icon annotate="true" src="shopping/rental/library.png"/>
+		<icon annotate="true" src="shop/rental/library.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2276,5 +2276,5 @@
 	<rule>
 		<condition k="shop" v="chemist"/>
-		<icon annotate="true" src="shopping/chemist.png"/>
+		<icon annotate="true" src="shop/chemist.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2284,5 +2284,5 @@
 	<rule>
 		<condition k="shop" v="clothes"/>
-		<icon annotate="true" src="shopping/clothes.png"/>
+		<icon annotate="true" src="shop/clothes.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2292,5 +2292,5 @@
 	<rule>
 		<condition k="shop" v="computer"/>
-		<icon annotate="true" src="shopping/computer.png"/>
+		<icon annotate="true" src="shop/computer.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2300,5 +2300,5 @@
 	<rule>
 		<condition k="shop" v="cycle_repair"/>
-		<icon annotate="true" src="sports/bicycle.png"/>
+		<icon annotate="true" src="sport/bicycle.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2308,5 +2308,5 @@
 	<rule>
 		<condition k="shop" v="department_store"/>
-		<icon annotate="true" src="shopping/mall.png"/>
+		<icon annotate="true" src="shop/mall.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2316,5 +2316,5 @@
 	<rule>
 		<condition k="shop" v="electronics"/>
-		<icon annotate="true" src="shopping/electronics.png"/>
+		<icon annotate="true" src="shop/electronics.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2324,5 +2324,5 @@
 	<rule>
 		<condition k="shop" v="furniture"/>
-		<icon annotate="true" src="shopping/furniture.png"/>
+		<icon annotate="true" src="shop/furniture.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2332,5 +2332,5 @@
 	<rule>
 		<condition k="shop" v="florist"/>
-		<icon annotate="true" src="shopping/florist.png"/>
+		<icon annotate="true" src="shop/florist.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2340,5 +2340,5 @@
 	<rule>
 		<condition k="shop" v="groceries"/>
-		<icon annotate="true" src="shopping/groceries/fruits.png"/>
+		<icon annotate="true" src="shop/groceries/fruits.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2348,5 +2348,5 @@
 	<rule>
 		<condition k="shop" v="garden_centre"/>
-		<icon annotate="true" src="shopping/garden_centre.png"/>
+		<icon annotate="true" src="shop/garden_centre.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2356,5 +2356,5 @@
 	<rule>
 		<condition k="shop" v="hairdresser"/>
-		<icon annotate="true" src="shopping/hairdresser.png"/>
+		<icon annotate="true" src="shop/hairdresser.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2364,5 +2364,5 @@
 	<rule>
 		<condition k="shop" v="hardware"/>
-		<icon annotate="true" src="shopping/diy_store.png"/>
+		<icon annotate="true" src="shop/diy_store.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2372,5 +2372,5 @@
 	<rule>
 		<condition k="shop" v="hifi"/>
-		<icon annotate="true" src="shopping/hifi.png"/>
+		<icon annotate="true" src="shop/hifi.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2380,5 +2380,5 @@
 	<rule>
 		<condition k="shop" v="jewelry"/>
-		<icon annotate="true" src="shopping/jewelry.png"/>
+		<icon annotate="true" src="shop/jewelry.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2388,5 +2388,5 @@
 	<rule>
 		<condition k="shop" v="mall"/>
-		<icon annotate="true" src="shopping/mall.png"/>
+		<icon annotate="true" src="shop/mall.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2404,5 +2404,5 @@
 	<rule>
 		<condition k="shop" v="newsagent"/>
-		<icon annotate="true" src="shopping/kiosk.png"/>
+		<icon annotate="true" src="shop/kiosk.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2412,5 +2412,5 @@
 	<rule>
 		<condition k="shop" v="organic"/>
-		<icon annotate="true" src="shopping/groceries/fruits.png"/>
+		<icon annotate="true" src="shop/groceries/fruits.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2420,5 +2420,5 @@
 	<rule>
 		<condition k="shop" v="optician"/>
-		<icon annotate="true" src="shopping/optician.png"/>
+		<icon annotate="true" src="shop/optician.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2428,5 +2428,5 @@
 	<rule>
 		<condition k="shop" v="shoes"/>
-		<icon annotate="true" src="shopping/shoes.png"/>
+		<icon annotate="true" src="shop/shoes.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2436,5 +2436,5 @@
 	<rule>
 		<condition k="shop" v="tailor"/>
-		<icon annotate="true" src="shopping/tailor.png"/>
+		<icon annotate="true" src="shop/tailor.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2444,5 +2444,5 @@
 	<rule>
 		<condition k="shop" v="travel_agency"/>
-		<icon annotate="true" src="places/island.png"/>
+		<icon annotate="true" src="place/island.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2452,5 +2452,5 @@
 	<rule>
 		<condition k="shop" v="toys"/>
-		<icon annotate="true" src="shopping/toys.png"/>
+		<icon annotate="true" src="shop/toys.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2460,14 +2460,14 @@
 	<rule>
 		<condition k="shop" v="video"/>
-		<icon annotate="true" src="shopping/video.png"/>
-		<area colour="shop#00005f"/>
-		<scale_min>1</scale_min>
-		<scale_max>50000</scale_max>
-	</rule>
-
-	<!-- duplicate of shopping_centre? -->
-	<rule>
-		<condition k="shop" v="shopping_center"/>
-		<icon annotate="true" src="shopping/mall.png"/>
+		<icon annotate="true" src="shop/video.png"/>
+		<area colour="shop#00005f"/>
+		<scale_min>1</scale_min>
+		<scale_max>50000</scale_max>
+	</rule>
+
+	<!-- duplicate of shop_centre? -->
+	<rule>
+		<condition k="shop" v="shop_center"/>
+		<icon annotate="true" src="shop/mall.png"/>
 		<area colour="shop#00005f"/>
 		<scale_min>1</scale_min>
@@ -2543,5 +2543,5 @@
 	<rule>
 		<condition k="tourism" v="picnic_site"/>
-		<icon annotate="true" src="recreation/picnic.png"/>
+		<icon annotate="true" src="leisure/picnic.png"/>
 		<area colour="tourism#e180a2"/>
 		<scale_min>1</scale_min>
@@ -2559,5 +2559,5 @@
 	<rule>
 		<condition k="tourism" v="theme_park"/>
-		<icon annotate="true" src="recreation/theme_park.png"/>
+		<icon annotate="true" src="leisure/theme_park.png"/>
 		<area colour="tourism#e180a2"/>
 		<scale_min>1</scale_min>
@@ -2575,5 +2575,5 @@
 	<rule>
 		<condition k="tourism" v="zoo"/>
-		<icon annotate="true" src="recreation/zoo.png"/>
+		<icon annotate="true" src="leisure/zoo.png"/>
 		<area colour="tourism#e180a2"/>
 		<scale_min>1</scale_min>
@@ -2583,5 +2583,5 @@
 	<rule>
 		<condition k="tourism" v="artwork"/>
-		<icon annotate="true" src="public/arts_centre.png"/>
+		<icon annotate="true" src="service/arts_centre.png"/>
 		<area colour="tourism#e180a2"/>
 		<scale_min>1</scale_min>
@@ -2773,5 +2773,5 @@
 		<condition k="landuse" v="retail"/>
 		<area colour="retail#dbdbdb"/>
-		<icon src="shopping/mall.png"/>
+		<icon src="shop/mall.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -2846,13 +2846,13 @@
 		<condition k="landuse" v="village_green"/>
 		<area colour="green#b1e0c2"/>
-		<icon src="recreation/common.png"/>
-		<scale_min>1</scale_min>
-		<scale_max>50000</scale_max>
-	</rule>
-
-	<rule>
-		<condition k="landuse" v="recreation_ground"/>
+		<icon src="leisure/common.png"/>
+		<scale_min>1</scale_min>
+		<scale_max>50000</scale_max>
+	</rule>
+
+	<rule>
+		<condition k="landuse" v="leisure_ground"/>
 		<area colour="green#b1e0c2"/>
-		<icon src="recreation/common.png"/>
+		<icon src="leisure/common.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3167,5 +3167,5 @@
 		<condition k="sport" v="10pin"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/10pin.png"/>
+		<icon src="sport/10pin.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3183,5 +3183,5 @@
 		<condition k="sport" v="australian_football"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/football.png"/>
+		<icon src="sport/football.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3191,5 +3191,5 @@
 		<condition k="sport" v="baseball"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/baseball.png"/>
+		<icon src="sport/baseball.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3199,5 +3199,5 @@
 		<condition k="sport" v="basketball"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/basketball.png"/>
+		<icon src="sport/basketball.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3207,5 +3207,5 @@
 		<condition k="sport" v="boules"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/boule.png"/>
+		<icon src="sport/boule.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3215,5 +3215,5 @@
 		<condition k="sport" v="bowls"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/boule.png"/>
+		<icon src="sport/boule.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3231,5 +3231,5 @@
 		<condition k="sport" v="cricket"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/cricket.png"/>
+		<icon src="sport/cricket.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3247,5 +3247,5 @@
 		<condition k="sport" v="croquet"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/croquet.png"/>
+		<icon src="sport/croquet.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3255,5 +3255,5 @@
 		<condition k="sport" v="cycling"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/cycling.png"/>
+		<icon src="sport/cycling.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3271,5 +3271,5 @@
 		<condition k="sport" v="equestrian"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/riding.png"/>
+		<icon src="sport/riding.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3279,5 +3279,5 @@
 		<condition k="sport" v="football"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/football.png"/>
+		<icon src="sport/football.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3287,5 +3287,5 @@
 		<condition k="sport" v="golf"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/golf.png"/>
+		<icon src="sport/golf.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3303,5 +3303,5 @@
 		<condition k="sport" v="hockey"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/hockey.png"/>
+		<icon src="sport/hockey.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3311,5 +3311,5 @@
 		<condition k="sport" v="horse_racing"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/riding.png"/>
+		<icon src="sport/riding.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3327,5 +3327,5 @@
 		<condition k="sport" v="multi"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/multi.png"/>
+		<icon src="sport/multi.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3343,5 +3343,5 @@
 		<condition k="sport" v="racquet"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/racquetball.png"/>
+		<icon src="sport/racquetball.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3351,5 +3351,5 @@
 		<condition k="sport" v="rugby"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/football.png"/>
+		<icon src="sport/football.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3375,5 +3375,5 @@
 		<condition k="sport" v="soccer"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/soccer.png"/>
+		<icon src="sport/soccer.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3383,5 +3383,5 @@
 		<condition k="sport" v="swimming"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/pool.png"/>
+		<icon src="sport/pool.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3391,5 +3391,5 @@
 		<condition k="sport" v="skiing"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/skiing.png"/>
+		<icon src="sport/skiing.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3399,5 +3399,5 @@
 		<condition k="sport" v="table_tennis"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/table_tennis.png"/>
+		<icon src="sport/table_tennis.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3407,5 +3407,5 @@
 		<condition k="sport" v="tennis"/>
 		<area colour="sport#bde3cb"/>
-		<icon src="sports/tennis.png"/>
+		<icon src="sport/tennis.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3439,5 +3439,5 @@
 		<condition k="sport" v="volleyball"/>
 		<area colour="sport#bde3cb"/>
-		<icon annotate="true" src="sports/volleyball.png"/>
+		<icon annotate="true" src="sport/volleyball.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3447,5 +3447,5 @@
 		<condition k="sport" v="beachvolleyball"/>
 		<area colour="sport#bde3cb"/>
-		<icon annotate="true" src="sports/volleyball.png"/>
+		<icon annotate="true" src="sport/volleyball.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3455,5 +3455,5 @@
 		<condition k="sport" v="bowling"/>
 		<area colour="sport#bde3cb"/>
-		<icon annotate="true" src="sports/10pin.png"/>
+		<icon annotate="true" src="sport/10pin.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3463,5 +3463,5 @@
 		<condition k="sport" v="handball"/>
 		<area colour="sport#bde3cb"/>
-		<icon annotate="true" src="sports/handball.png"/>
+		<icon annotate="true" src="sport/handball.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3487,5 +3487,5 @@
 		<condition k="sport" v="diving"/>
 		<area colour="sport#bde3cb"/>
-		<icon annotate="true" src="sports/diving.png"/>
+		<icon annotate="true" src="sport/diving.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3503,5 +3503,5 @@
 		<condition k="sport" v="archery"/>
 		<area colour="sport#bde3cb"/>
-		<icon annotate="true" src="sports/archery.png"/>
+		<icon annotate="true" src="sport/archery.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3511,5 +3511,5 @@
 		<condition k="sport" v="fishing"/>
 		<area colour="sport#bde3cb"/>
-		<icon annotate="true" src="sports/fishing.png"/>
+		<icon annotate="true" src="sport/fishing.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3570,5 +3570,5 @@
 	<rule>
 		<condition k="place" v="continent"/>
-		<icon annotate="true" src="places/settlement/capital.png"/>
+		<icon annotate="true" src="place/settlement/capital.png"/>
 		<area colour="place#8de3cb"/>
 		<scale_min>1</scale_min>
@@ -3578,5 +3578,5 @@
 	<rule>
 		<condition k="place" v="country"/>
-		<icon annotate="true" src="places/settlement/capital.png"/>
+		<icon annotate="true" src="place/settlement/capital.png"/>
 		<area colour="place#8de3cb"/>
 		<scale_min>1</scale_min>
@@ -3586,5 +3586,5 @@
 	<rule>
 		<condition k="place" v="state"/>
-		<icon annotate="true" src="places/settlement/capital.png"/>
+		<icon annotate="true" src="place/settlement/capital.png"/>
 		<area colour="place#8de3cb"/>
 		<scale_min>1</scale_min>
@@ -3594,5 +3594,5 @@
 	<rule>
 		<condition k="place" v="region"/>
-		<icon annotate="true" src="places/settlement/capital.png"/>
+		<icon annotate="true" src="place/settlement/capital.png"/>
 		<area colour="place#8de3cb"/>
 		<scale_min>1</scale_min>
@@ -3602,5 +3602,5 @@
 	<rule>
 		<condition k="place" v="county"/>
-		<icon annotate="true" src="places/settlement/capital.png"/>
+		<icon annotate="true" src="place/settlement/capital.png"/>
 		<area colour="place#8de3cb"/>
 		<scale_min>1</scale_min>
@@ -3610,5 +3610,5 @@
 	<rule>
 		<condition k="place" v="city"/>
-		<icon annotate="true" src="places/settlement/city.png"/>
+		<icon annotate="true" src="place/settlement/city.png"/>
 		<area colour="place#8de3cb"/>
 		<scale_min>1</scale_min>
@@ -3618,5 +3618,5 @@
 	<rule>
 		<condition k="place" v="town"/>
-		<icon annotate="true" src="places/settlement/town.png"/>
+		<icon annotate="true" src="place/settlement/town.png"/>
 		<area colour="place#8de3cb"/>
 		<scale_min>1</scale_min>
@@ -3626,5 +3626,5 @@
 	<rule>
 		<condition k="place" v="village"/>
-		<icon annotate="true" src="places/settlement/town.png"/>
+		<icon annotate="true" src="place/settlement/town.png"/>
 		<area colour="place#8de3cb"/>
 		<scale_min>1</scale_min>
@@ -3634,5 +3634,5 @@
 	<rule>
 		<condition k="place" v="hamlet"/>
-		<icon annotate="true" src="places/settlement/town.png"/>
+		<icon annotate="true" src="place/settlement/town.png"/>
 		<area colour="place#8de3cb"/>
 		<scale_min>1</scale_min>
@@ -3642,5 +3642,5 @@
 	<rule>
 		<condition k="place" v="suburb"/>
-		<icon annotate="true" src="places/settlement/town.png"/>
+		<icon annotate="true" src="place/settlement/town.png"/>
 		<area colour="place#8de3cb"/>
 		<scale_min>1</scale_min>
@@ -3650,5 +3650,5 @@
 	<rule>
 		<condition k="place" v="locality"/>
-		<icon annotate="true" src="places/locality.png"/>
+		<icon annotate="true" src="place/locality.png"/>
 		<area colour="place#8de3cb"/>
 		<scale_min>1</scale_min>
@@ -3658,5 +3658,5 @@
 	<rule>
 		<condition k="place" v="island"/>
-		<icon annotate="true" src="places/island.png"/>
+		<icon annotate="true" src="place/island.png"/>
 		<area colour="place#8de3cb"/>
 		<scale_min>1</scale_min>
@@ -3667,5 +3667,5 @@
 	<rule>
 		<condition k="openGeoDB:type" v="Stadt"/>
-		<icon annotate="true" src="places/settlement/town.png"/>
+		<icon annotate="true" src="place/settlement/town.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3674,5 +3674,5 @@
 	<rule>
 		<condition k="openGeoDB:type" v="Kreis"/>
-		<icon annotate="true" src="places/settlement/town.png"/>
+		<icon annotate="true" src="place/settlement/town.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3681,5 +3681,5 @@
 	<rule>
 		<condition k="openGeoDB:type" v="Gemeinde"/>
-		<icon annotate="true" src="places/settlement/town.png"/>
+		<icon annotate="true" src="place/settlement/town.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3688,5 +3688,5 @@
 	<rule>
 		<condition k="openGeoDB:type" v="Ort"/>
-		<icon annotate="true" src="places/settlement/town.png"/>
+		<icon annotate="true" src="place/settlement/town.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3695,5 +3695,5 @@
 	<rule>
 		<condition k="openGeoDB:type" v="District"/>
-		<icon annotate="true" src="places/settlement/town.png"/>
+		<icon annotate="true" src="place/settlement/town.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
@@ -3702,5 +3702,5 @@
 	<rule>
 		<condition k="openGeoDB:location" v="locality"/>
-		<icon annotate="true" src="places/settlement/town.png"/>
+		<icon annotate="true" src="place/settlement/town.png"/>
 		<scale_min>1</scale_min>
 		<scale_max>50000</scale_max>
