Index: /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Condition.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Condition.java	(revision 6686)
+++ /trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Condition.java	(revision 6687)
@@ -9,4 +9,5 @@
 
 import org.openstreetmap.josm.data.osm.Node;
+import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Relation;
 import org.openstreetmap.josm.data.osm.Tag;
@@ -347,5 +348,5 @@
 
         public boolean appliesImpl(Environment e) {
-            if (equal(id, "closed")) {
+            if ("closed".equals(id)) {
                 if (e.osm instanceof Way && ((Way) e.osm).isClosed())
                     return true;
@@ -353,11 +354,11 @@
                     return true;
                 return false;
-            } else if (equal(id, "modified")) {
+            } else if ("modified".equals(id)) {
                 return e.osm.isModified() || e.osm.isNewOrUndeleted();
-            } else if (equal(id, "new")) {
+            } else if ("new".equals(id)) {
                 return e.osm.isNew();
-            } else if (equal(id, "connection") && (e.osm instanceof Node)) {
+            } else if ("connection".equals(id) && (e.osm instanceof Node)) {
                 return ((Node) e.osm).isConnectionNode();
-            } else if (equal(id, "tagged")) {
+            } else if ("tagged".equals(id)) {
                 return e.osm.isTagged();
             } else if ("sameTags".equals(id)) {
@@ -365,4 +366,6 @@
             } else if ("areaStyle".equals(id)) {
                 return ElemStyles.hasAreaElemStyle(e.osm, false);
+            } else if ("unconnected".equals(id) && (e.osm instanceof Node)) {
+                return OsmPrimitive.getFilteredList(e.osm.getReferrers(), Way.class).isEmpty();
             }
             return true;
