Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java	(revision 6926)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/ExpressionFactory.java	(revision 6927)
@@ -341,4 +341,8 @@
         }
 
+        public String child_tag(String key) {
+            return env.child == null ? null : env.child.get(key);
+        }
+
         /**
          * Determines whether the object has a tag with the given key.
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj	(revision 6926)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/MapCSSParser.jj	(revision 6927)
@@ -368,5 +368,11 @@
     (
         (
-            ( <GREATER> { type = Selector.ChildOrParentSelectorType.CHILD; } | <LESS> { type = Selector.ChildOrParentSelectorType.PARENT; } )
+            (
+                <GREATER> { type = Selector.ChildOrParentSelectorType.CHILD; }
+            |
+                <LESS> { type = Selector.ChildOrParentSelectorType.PARENT; }
+            |
+                <PLUS> { type = Selector.ChildOrParentSelectorType.SIBLING; }
+            )
             ( ( c=condition(Context.LINK) | c=class_or_pseudoclass(Context.LINK) ) { conditions.add(c); } )*
         |
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 6926)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/mapcss/Selector.java	(revision 6927)
@@ -39,5 +39,5 @@
 
     public static enum ChildOrParentSelectorType {
-        CHILD, PARENT, ELEMENT_OF, CROSSING
+        CHILD, PARENT, ELEMENT_OF, CROSSING, SIBLING
     }
 
@@ -258,4 +258,22 @@
                 }
                 return e.child != null;
+            } else if (ChildOrParentSelectorType.SIBLING.equals(type)) {
+                if (e.osm instanceof Node) {
+                    for (Way w : Utils.filteredCollection(e.osm.getReferrers(), Way.class)) {
+                        final int i = w.getNodes().indexOf(e.osm);
+                        if (i - 1 >= 0) {
+                            final Node n = w.getNode(i - 1);
+                            final Environment e2 = e.withPrimitive(n).withParent(w).withChild(e.osm);
+                            if (left.matches(e2)) {
+                                if (link.matches(e2.withLinkContext())) {
+                                    e.child = n;
+                                    e.index = i;
+                                    e.parent = w;
+                                    return true;
+                                }
+                            }
+                        }
+                    }
+                }
             } else if (ChildOrParentSelectorType.CHILD.equals(type)) {
                 MatchingReferrerFinder collector = new MatchingReferrerFinder(e);
Index: trunk/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorTagCheckerRulesPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorTagCheckerRulesPreference.java	(revision 6926)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/validator/ValidatorTagCheckerRulesPreference.java	(revision 6927)
@@ -137,4 +137,5 @@
             List<ExtendedSourceEntry> def = new ArrayList<ExtendedSourceEntry>();
             
+            addDefault(def, "addresses",    tr("Addresses"),           tr("Checks for errors on addresses"));
             addDefault(def, "combinations", tr("Tag combinations"),    tr("Checks for missing tag or suspicious combinations"));
             addDefault(def, "deprecated",   tr("Deprecated features"), tr("Checks for deprecated features"));
