Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java	(revision 3950)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/MultipolygonTest.java	(revision 3951)
@@ -148,7 +148,9 @@
 
                 AreaElemStyle area = null;
+                boolean areaStyle = false;
                 for (ElemStyle s : styles.generateStyles(r, SCALE, null, false).a) {
                     if (s instanceof AreaElemStyle) {
                         area = (AreaElemStyle) s;
+                        areaStyle = true;
                         break;
                     }
@@ -156,9 +158,7 @@
                 // If area style was not found for relation then use style of ways
                 if (area == null) {
-                    errors.add( new TestError(this, Severity.OTHER, tr("No style in multipolygon relation"),
-                            NO_STYLE_POLYGON, r));
                     for (Way w : polygon.getOuterWays()) {
 
-                        for (ElemStyle s : styles.generateStyles(r, SCALE, null, true).a) {
+                        for (ElemStyle s : styles.generateStyles(w, SCALE, null, true).a) {
                             if (s instanceof AreaElemStyle) {
                                 area = (AreaElemStyle) s;
@@ -170,4 +170,9 @@
                         }
                     }
+                    if(area == null)
+                        errors.add(new TestError(this, Severity.OTHER, tr("No style for multipolygon"), NO_STYLE, r));
+                    else
+                        errors.add( new TestError(this, Severity.OTHER, tr("No style in multipolygon relation"),
+                            NO_STYLE_POLYGON, r));
                 }
 
@@ -190,23 +195,22 @@
                         }
                     }
-                    for (Way wOuter : polygon.getOuterWays()) {
-                        AreaElemStyle areaOuter = null;
-                        for (ElemStyle s : styles.generateStyles(wOuter, SCALE, null, false).a) {
-                            if (s instanceof AreaElemStyle) {
-                                areaOuter = (AreaElemStyle) s;
-                                break;
-                            }
-                        }
-                        if (areaOuter != null && !area.equals(areaOuter)) {
-                            List<OsmPrimitive> l = new ArrayList<OsmPrimitive>();
-                            l.add(r);
-                            l.add(wOuter);
-                            errors.add(new TestError(this, Severity.WARNING, tr("Style for outer way mismatches"),
-                            OUTER_STYLE_MISMATCH, l, Collections.singletonList(wOuter)));
-                        }
-                    }
-                }
-                else {
-                    errors.add(new TestError(this, Severity.OTHER, tr("No style for multipolygon"), NO_STYLE, r));
+                    if(!areaStyle) {
+                        for (Way wOuter : polygon.getOuterWays()) {
+                            AreaElemStyle areaOuter = null;
+                            for (ElemStyle s : styles.generateStyles(wOuter, SCALE, null, false).a) {
+                                if (s instanceof AreaElemStyle) {
+                                    areaOuter = (AreaElemStyle) s;
+                                    break;
+                                }
+                            }
+                            if (areaOuter != null && !area.equals(areaOuter)) {
+                                List<OsmPrimitive> l = new ArrayList<OsmPrimitive>();
+                                l.add(r);
+                                l.add(wOuter);
+                                errors.add(new TestError(this, Severity.WARNING, tr("Style for outer way mismatches"),
+                                OUTER_STYLE_MISMATCH, l, Collections.singletonList(wOuter)));
+                            }
+                        }
+                    }
                 }
             }
