Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 15121)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ConditionFactory.java	(revision 15122)
@@ -15,5 +15,8 @@
 import java.util.regex.PatternSyntaxException;
 
+import org.openstreetmap.josm.data.osm.INode;
 import org.openstreetmap.josm.data.osm.IPrimitive;
+import org.openstreetmap.josm.data.osm.IRelation;
+import org.openstreetmap.josm.data.osm.IWay;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
@@ -21,5 +24,4 @@
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.Tag;
-import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.data.osm.search.SearchCompiler.InDataSourceArea;
 import org.openstreetmap.josm.data.osm.visitor.paint.relations.Multipolygon;
@@ -638,7 +640,7 @@
          */
         static boolean closed(Environment e) { // NO_UCD (unused code)
-            if (e.osm instanceof Way && ((Way) e.osm).isClosed())
+            if (e.osm instanceof IWay<?> && ((IWay<?>) e.osm).isClosed())
                 return true;
-            return e.osm instanceof Relation && ((Relation) e.osm).isMultipolygon();
+            return e.osm instanceof IRelation<?> && ((IRelation<?>) e.osm).isMultipolygon();
         }
 
@@ -670,5 +672,5 @@
          */
         static boolean connection(Environment e) { // NO_UCD (unused code)
-            return e.osm instanceof Node && e.osm.getDataSet() != null && ((Node) e.osm).isConnectionNode();
+            return e.osm instanceof INode && e.osm.getDataSet() != null && ((INode) e.osm).isConnectionNode();
         }
 
@@ -769,6 +771,6 @@
 
         static boolean completely_downloaded(Environment e) { // NO_UCD (unused code)
-            if (e.osm instanceof Relation) {
-                return !((Relation) e.osm).hasIncompleteMembers();
+            if (e.osm instanceof IRelation<?>) {
+                return !((IRelation<?>) e.osm).hasIncompleteMembers();
             } else {
                 return true;
@@ -777,5 +779,5 @@
 
         static boolean closed2(Environment e) { // NO_UCD (unused code)
-            if (e.osm instanceof Way && ((Way) e.osm).isClosed())
+            if (e.osm instanceof IWay<?> && ((IWay<?>) e.osm).isClosed())
                 return true;
             if (e.osm instanceof Relation && ((Relation) e.osm).isMultipolygon()) {
