Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java	(revision 8288)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java	(revision 8289)
@@ -41,5 +41,5 @@
         IconReference iconRef = c.get(FILL_IMAGE, null, IconReference.class);
         if (iconRef != null) {
-            fillImage = new MapImage(iconRef.iconName, iconRef.source);
+            fillImage = new MapImage(iconRef.iconName, iconRef.source, false);
 
             color = new Color(fillImage.getImage(false).getRGB(
Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/MapImage.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/MapImage.java	(revision 8288)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/MapImage.java	(revision 8289)
@@ -33,4 +33,5 @@
     public String name;
     public StyleSource source;
+    public boolean autoRescale;
     public int width = -1;
     public int height = -1;
@@ -42,6 +43,11 @@
 
     public MapImage(String name, StyleSource source) {
+        this(name, source, true);
+    }
+
+    public MapImage(String name, StyleSource source, boolean autoRescale) {
         this.name = name;
         this.source = source;
+        this.autoRescale = autoRescale;
     }
 
@@ -199,6 +205,6 @@
 
     private boolean mustRescale(Image image) {
-        return ((width  == -1 && image.getWidth(null) > MAX_SIZE)
-             && (height == -1 && image.getHeight(null) > MAX_SIZE));
+        return autoRescale && width  == -1 && image.getWidth(null) > MAX_SIZE
+             && height == -1 && image.getHeight(null) > MAX_SIZE;
     }
 
@@ -212,4 +218,5 @@
                 Objects.equals(name, other.name) &&
                 Objects.equals(source, other.source) &&
+                autoRescale == other.autoRescale &&
                 width == other.width &&
                 height == other.height;
@@ -222,4 +229,5 @@
         hash = 67 * hash + name.hashCode();
         hash = 67 * hash + source.hashCode();
+        hash = 67 * hash + (autoRescale ? 1 : 0);
         hash = 67 * hash + width;
         hash = 67 * hash + height;
