Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 9007)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/StyledMapRenderer.java	(revision 9008)
@@ -479,5 +479,13 @@
                     g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, alpha));
                 }
-                g.fill(area);
+                if (extent == null) {
+                    g.fill(area);
+                } else {
+                    Shape clip = g.getClip();
+                    BasicStroke stroke = new BasicStroke(2 * extent);
+                    g.clip(stroke.createStrokedShape(area));
+                    g.fill(area);
+                    g.setClip(clip);
+                }
                 g.setPaintMode();
             }
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java	(revision 9007)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/AreaElemStyle.java	(revision 9008)
@@ -72,5 +72,4 @@
                 }
                 color = new Color(color.getRed(), color.getGreen(), color.getBlue(), alpha);
-                extent = c.get(FILL_EXTENT, null, float.class);
             }
         }
@@ -81,4 +80,6 @@
             text = TextElement.create(env, PaintColors.AREA_TEXT.get(), true);
         }
+
+        extent = c.get(FILL_EXTENT, null, float.class);
 
         if (color != null)
