Index: trunk/src/org/openstreetmap/josm/actions/JumpToAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/JumpToAction.java	(revision 4959)
+++ trunk/src/org/openstreetmap/josm/actions/JumpToAction.java	(revision 4960)
@@ -30,5 +30,5 @@
     public JumpToAction() {
         super(tr("Jump To Position"), null, tr("Opens a dialog that allows to jump to a specific location"), Shortcut.registerShortcut("tools:jumpto", tr("Tool: {0}", tr("Jump To Position")),
-        KeyEvent.VK_G, Shortcut.GROUP_HOTKEY), false);
+        KeyEvent.VK_J, Shortcut.GROUP_HOTKEY), false);
         putValue("toolbar", "action/jumpto");
         Main.toolbar.register(this);
Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 4959)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 4960)
@@ -332,9 +332,4 @@
         locations.add("/usr/lib/josm/");
         return locations;
-    }
-
-    @Deprecated
-    synchronized public boolean hasKey(final String key) {
-        return properties.containsKey(key);
     }
 
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java	(revision 4959)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java	(revision 4960)
@@ -18,5 +18,4 @@
 import org.openstreetmap.josm.gui.mappaint.MapPaintStyles.IconReference;
 import org.openstreetmap.josm.tools.CheckParameterUtil;
-import org.openstreetmap.josm.tools.ImageProvider.SanitizeMode;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -45,5 +44,5 @@
         IconReference iconRef = c.get("fill-image", null, IconReference.class);
         if (iconRef != null) {
-            ImageIcon icon = MapPaintStyles.getIcon(iconRef, -1, -1, SanitizeMode.MAKE_BUFFEREDIMAGE);
+            ImageIcon icon = MapPaintStyles.getIcon(iconRef, -1, -1);
             if (icon != null) {
                 if (!(icon.getImage() instanceof BufferedImage))
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 4959)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java	(revision 4960)
@@ -27,5 +27,4 @@
 import org.openstreetmap.josm.io.MirroredInputStream;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.ImageProvider.SanitizeMode;
 
 /**
@@ -89,8 +88,4 @@
 
     public static ImageIcon getIcon(IconReference ref, int width, int height) {
-        return getIcon(ref, width, height, SanitizeMode.OFF);
-    }
-
-    public static ImageIcon getIcon(IconReference ref, int width, int height, SanitizeMode sanitize) {
         final String namespace = ref.source.getPrefName();
         ImageIcon i = new ImageProvider(ref.iconName)
@@ -100,5 +95,4 @@
                 .setWidth(width)
                 .setHeight(height)
-                .setSanitize(sanitize)
                 .setOptional(true).get();
         if(i == null)
@@ -108,8 +102,4 @@
         }
         return i;
-    }
-
-    public static ImageIcon getNoIcon_Icon(StyleSource source) {
-        return getNoIcon_Icon(source, SanitizeMode.OFF);
     }
 
@@ -122,10 +112,9 @@
      *  can be null if the defaults are turned off by user
      */
-    public static ImageIcon getNoIcon_Icon(StyleSource source, SanitizeMode sanitize) {
+    public static ImageIcon getNoIcon_Icon(StyleSource source) {
         return new ImageProvider("misc/no_icon.png")
                 .setDirs(getIconSourceDirs(source))
                 .setId("mappaint."+source.getPrefName())
                 .setArchive(source.zipIcons)
-                .setSanitize(sanitize)
                 .setOptional(true).get();
     }
Index: trunk/src/org/openstreetmap/josm/tools/ImageProvider.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 4959)
+++ trunk/src/org/openstreetmap/josm/tools/ImageProvider.java	(revision 4960)
@@ -85,10 +85,4 @@
     }
 
-    public static enum SanitizeMode {
-        OFF,                // never sanitize the image
-        ALWAYS,             // always copy to a new BufferedImage
-        MAKE_BUFFEREDIMAGE  // make sure the returned image is instance of BufferedImage
-    }
-
     protected Collection<String> dirs;
     protected String id;
@@ -100,5 +94,4 @@
     protected int maxWidth = -1;
     protected int maxHeight = -1;
-    protected SanitizeMode sanitize;
     protected boolean optional;
 
@@ -204,12 +197,4 @@
     public ImageProvider setMaxHeight(int maxHeight) {
         this.maxHeight = maxHeight;
-        return this;
-    }
-
-    /**
-     * Set true, if the image should be repainted to a new BufferedImage in order to work around certain issues.
-     */
-    public ImageProvider setSanitize(SanitizeMode sanitize) {
-        this.sanitize = sanitize;
         return this;
     }
@@ -240,7 +225,7 @@
         }
         if (maxWidth != -1 || maxHeight != -1)
-            return ir.getImageIconBounded(new Dimension(maxWidth, maxHeight), sanitize);
+            return ir.getImageIconBounded(new Dimension(maxWidth, maxHeight));
         else
-            return ir.getImageIcon(new Dimension(width, height), sanitize);
+            return ir.getImageIcon(new Dimension(width, height));
     }
 
@@ -292,8 +277,7 @@
                     if (mediatype != null && mediatype.contains("image/svg+xml")) {
                         URI uri = getSvgUniverse().loadSVG(new StringReader(new String(bytes)), name);
-                        SVGDiagram svg = getSvgUniverse().getDiagram(uri);
-                        return new ImageResource(svg);
+                        return new ImageResource(getSvgUniverse().getDiagram(uri));
                     } else {
-                        return new ImageResource(new ImageIcon(bytes).getImage(), true);
+                        return new ImageResource(new ImageIcon(bytes).getImage());
                     }
                 }
@@ -406,5 +390,5 @@
                         img = ImageIO.read(is.getFile().toURI().toURL());
                     } catch (IOException e) {}
-                    return img == null ? null : new ImageResource(img, true);
+                    return img == null ? null : new ImageResource(img);
                 default:
                     throw new AssertionError();
@@ -475,5 +459,5 @@
                                 img = ImageIO.read(new ByteArrayInputStream(buf));
                             } catch (IOException e) {}
-                            return img == null ? null : new ImageResource(img, false);
+                            return img == null ? null : new ImageResource(img);
                         default:
                             throw new AssertionError();
@@ -509,5 +493,5 @@
                     img = ImageIO.read(path);
                 } catch (IOException e) {}
-                return img == null ? null : new ImageResource(img, true);
+                return img == null ? null : new ImageResource(img);
             default:
                 throw new AssertionError();
@@ -767,13 +751,4 @@
     }
 
-    public static BufferedImage sanitize(Image img) {
-        (new ImageIcon(img)).getImage(); // load competely
-        int width = img.getWidth(null);
-        int height = img.getHeight(null);
-        BufferedImage result = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
-        result.getGraphics().drawImage(img, 0, 0, null);
-        return result;
-    }
-
     public static Image createImageFromSvg(SVGDiagram svg, Dimension dim) {
         float realWidth = svg.getWidth();
Index: trunk/src/org/openstreetmap/josm/tools/ImageResource.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/ImageResource.java	(revision 4959)
+++ trunk/src/org/openstreetmap/josm/tools/ImageResource.java	(revision 4960)
@@ -9,6 +9,4 @@
 import java.util.HashMap;
 import javax.swing.ImageIcon;
-
-import org.openstreetmap.josm.tools.ImageProvider.SanitizeMode;
 
 /**
@@ -24,25 +22,11 @@
      * Caches the image data for resized versions of the same image.
      */
-    private HashMap<Dimension, ImageWrapper> imgCache = new HashMap<Dimension, ImageWrapper>();
+    private HashMap<Dimension, Image> imgCache = new HashMap<Dimension, Image>();
     private SVGDiagram svg;
     public static final Dimension DEFAULT_DIMENSION = new Dimension(-1, -1);
  
-    /**
-     * remember whether the image has been sanitized
-     */
-    private static class ImageWrapper {
-        Image img;
-        boolean sanitized;
-
-        public ImageWrapper(Image img, boolean sanitized) {
-            CheckParameterUtil.ensureParameterNotNull(img);
-            this.img = img;
-            this.sanitized = sanitized;
-        }
-    }
-    
-    public ImageResource(Image img, boolean sanitized) {
+    public ImageResource(Image img) {
         CheckParameterUtil.ensureParameterNotNull(img);
-        imgCache.put(DEFAULT_DIMENSION, new ImageWrapper(img, sanitized));
+        imgCache.put(DEFAULT_DIMENSION, img);
     }
 
@@ -53,5 +37,5 @@
 
     public ImageIcon getImageIcon() {
-        return getImageIcon(DEFAULT_DIMENSION, SanitizeMode.OFF);
+        return getImageIcon(DEFAULT_DIMENSION);
     }
 
@@ -61,31 +45,23 @@
      *          and (width, -1) to set the width, but otherwise scale the image
      *          proportionally.
-     * @param sanitize Whether the returned image should be copied to a BufferedImage
-     *          to avoid certain problem with native image formats.
      */
-    public ImageIcon getImageIcon(Dimension dim, SanitizeMode sanitize) {
+    public ImageIcon getImageIcon(Dimension dim) {
         if (dim.width < -1 || dim.width == 0 || dim.height < -1 || dim.height == 0)
             throw new IllegalArgumentException();
-        ImageWrapper iw = imgCache.get(dim);
-        if (iw != null) {
-            if (!iw.sanitized) {
-                if (sanitize == SanitizeMode.ALWAYS || (sanitize == SanitizeMode.MAKE_BUFFEREDIMAGE && !(iw.img instanceof BufferedImage))) {
-                    iw.img = ImageProvider.sanitize(iw.img);
-                    iw.sanitized = true;
-                }
-            }
-            return new ImageIcon(iw.img);
+        Image img = imgCache.get(dim);
+        if (img != null) {
+            return new ImageIcon(img);
         }
         if (svg != null) {
-            Image img = ImageProvider.createImageFromSvg(svg, dim);
-            imgCache.put(dim, new ImageWrapper(img, true));
+            img = ImageProvider.createImageFromSvg(svg, dim);
+            imgCache.put(dim, img);
             return new ImageIcon(img);
         } else {
-            ImageWrapper base = imgCache.get(DEFAULT_DIMENSION);
+            Image base = imgCache.get(DEFAULT_DIMENSION);
             if (base == null) throw new AssertionError();
             
             int width = dim.width;
             int height = dim.height;
-            ImageIcon icon = new ImageIcon(base.img);
+            ImageIcon icon = new ImageIcon(base);
             if (width == -1) {
                 width = icon.getIconWidth() * height / icon.getIconHeight();
@@ -93,12 +69,6 @@
                 height = icon.getIconHeight() * width / icon.getIconWidth();
             }
-            Image img;
             img = icon.getImage().getScaledInstance(width, height, Image.SCALE_SMOOTH);
-            boolean sanitized = false;
-            if (sanitize == SanitizeMode.ALWAYS || (sanitize == SanitizeMode.MAKE_BUFFEREDIMAGE && !(img instanceof BufferedImage))) {
-                img = ImageProvider.sanitize(img);
-                sanitized = true;
-            }
-            imgCache.put(dim, new ImageWrapper(img, sanitized));
+            imgCache.put(dim, img);
             return new ImageIcon(img);
         }
@@ -112,5 +82,5 @@
      * which means it is not bounded.
      */
-    public ImageIcon getImageIconBounded(Dimension maxSize, SanitizeMode sanitize) {
+    public ImageIcon getImageIconBounded(Dimension maxSize) {
         if (maxSize.width < -1 || maxSize.width == 0 || maxSize.height < -1 || maxSize.height == 0)
             throw new IllegalArgumentException();
@@ -121,7 +91,7 @@
             realHeight = svg.getHeight();
         } else {
-            ImageWrapper base = imgCache.get(DEFAULT_DIMENSION);
+            Image base = imgCache.get(DEFAULT_DIMENSION);
             if (base == null) throw new AssertionError();
-            ImageIcon icon = new ImageIcon(base.img);
+            ImageIcon icon = new ImageIcon(base);
             realWidth = icon.getIconWidth();
             realHeight = icon.getIconHeight();
@@ -138,14 +108,14 @@
 
         if (maxWidth == -1 && maxHeight == -1)
-            return getImageIcon(DEFAULT_DIMENSION, sanitize);
+            return getImageIcon(DEFAULT_DIMENSION);
         else if (maxWidth == -1)
-            return getImageIcon(new Dimension(-1, maxHeight), sanitize);
+            return getImageIcon(new Dimension(-1, maxHeight));
         else if (maxHeight == -1)
-            return getImageIcon(new Dimension(maxWidth, -1), sanitize);
+            return getImageIcon(new Dimension(maxWidth, -1));
         else
             if (realWidth / maxWidth > realHeight / maxHeight)
-                return getImageIcon(new Dimension(maxWidth, -1), sanitize);
+                return getImageIcon(new Dimension(maxWidth, -1));
             else
-                return getImageIcon(new Dimension(-1, maxHeight), sanitize);
+                return getImageIcon(new Dimension(-1, maxHeight));
    }
 }
