Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java	(revision 3690)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPaintSettings.java	(revision 3691)
@@ -29,4 +29,5 @@
     private boolean fillTaggedNode;
     private boolean fillConnectionNode;
+    private boolean outlineOnly;
     private Color selectedColor;
     private Color relationSelectedColor;
@@ -78,4 +79,7 @@
         fillTaggedNode = Main.pref.getBoolean("mappaint.node.fill-tagged", true);
         fillConnectionNode = Main.pref.getBoolean("mappaint.node.fill-connection", false);
+
+        outlineOnly = Main.pref.getBoolean("draw.data.area_outline_only", false);
+
     }
 
@@ -187,3 +191,7 @@
         return fillTaggedNode;
     }
+
+    public boolean isOutlineOnly() {
+        return outlineOnly;
+    }
 }
Index: trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPainter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPainter.java	(revision 3690)
+++ trunk/src/org/openstreetmap/josm/data/osm/visitor/paint/MapPainter.java	(revision 3691)
@@ -28,4 +28,5 @@
 
 public class MapPainter {
+
     private final Graphics2D g;
     private final NavigatableComponent nc;
@@ -35,4 +36,5 @@
     private final boolean showNames;
     private final boolean showIcons;
+    private final boolean outlineOnly;
 
     private final Color inactiveColor;
@@ -58,5 +60,8 @@
     private static final double sinPHI = Math.sin(PHI);
 
-    public MapPainter(MapPaintSettings settings, Graphics2D g, boolean inactive, NavigatableComponent nc, boolean virtual, double dist, double circum) {
+    public MapPainter(MapPaintSettings settings, Graphics2D g, 
+        boolean inactive, NavigatableComponent nc, boolean virtual, 
+        double dist, double circum) {
+
         this.g = g;
         this.inactive = inactive;
@@ -65,4 +70,5 @@
         this.showNames = settings.getShowNamesDistance() > dist;
         this.showIcons = settings.getShowIconsDistance() > dist;
+        this.outlineOnly = settings.isOutlineOnly();
 
         this.inactiveColor = PaintColors.INACTIVE.get();
@@ -249,5 +255,11 @@
         /* set the opacity (alpha) level of the filled polygon */
         g.setColor(new Color(color.getRed(), color.getGreen(), color.getBlue(), fillAlpha));
-        g.fillPolygon(polygon);
+
+        if (outlineOnly) {
+            g.drawPolygon(polygon);
+        } else {
+            g.fillPolygon(polygon);
+        }
+            
 
         if (name != null) {
Index: trunk/src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java	(revision 3690)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java	(revision 3691)
@@ -60,4 +60,5 @@
     private JCheckBox useAntialiasing = new JCheckBox(tr("Smooth map graphics (antialiasing)"));
     private JCheckBox makeAutoMarkers = new JCheckBox(tr("Create markers when reading GPX."));
+    private JCheckBox outlineOnly = new JCheckBox(tr("Draw only outlines of areas"));
     private JComboBox waypointLabel = new JComboBox(new String[] {tr("Auto"), /* gpx data field name */ trc("gpx_field", "Name"),
                                       /* gpx data field name */ trc("gpx_field", "Desc(ription)"), tr("Both"), tr("None")});
@@ -277,4 +278,9 @@
         panel.add(inactive, GBC.eop().insets(20,0,0,0));
 
+        // outlineOnly
+        outlineOnly.setSelected(Main.pref.getBoolean("draw.data.area_outline_only", false));
+        outlineOnly.setToolTipText(tr("This option suppresses the filling of areas, overriding anything specified in the selected style."));
+        panel.add(outlineOnly, GBC.eol().insets(20,0,0,5));
+
         panel.add(Box.createVerticalGlue(), GBC.eol().fill(GBC.BOTH));
         scrollpane = new JScrollPane(panel);
@@ -285,4 +291,5 @@
     public boolean ok() {
         Main.pref.put("marker.makeautomarkers", makeAutoMarkers.isSelected());
+        Main.pref.put("draw.data.area_outline_only", outlineOnly.isSelected());
         Main.pref.put("draw.rawgps.lines", drawRawGpsLinesAll.isSelected());
         Main.pref.put("draw.rawgps.lines.localfiles", drawRawGpsLinesLocal.isSelected());
