Index: /trunk/src/org/openstreetmap/josm/data/osm/INode.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/INode.java	(revision 13668)
+++ /trunk/src/org/openstreetmap/josm/data/osm/INode.java	(revision 13669)
@@ -43,4 +43,23 @@
     void setEastNorth(EastNorth eastNorth);
 
+    /**
+     * Check whether this node connects 2 ways.
+     *
+     * @return true if isReferredByWays(2) returns true
+     * @see #isReferredByWays(int)
+     * @since 13669
+     */
+    default boolean isConnectionNode() {
+        return isReferredByWays(2);
+    }
+
+    /**
+     * Return true, if this primitive is referred by at least n ways
+     * @param n Minimal number of ways to return true. Must be positive
+     * @return {@code true} if this primitive is referred by at least n ways
+     * @since 13669
+     */
+    boolean isReferredByWays(int n);
+
     @Override
     default int compareTo(IPrimitive o) {
Index: /trunk/src/org/openstreetmap/josm/data/osm/Node.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/Node.java	(revision 13668)
+++ /trunk/src/org/openstreetmap/josm/data/osm/Node.java	(revision 13669)
@@ -325,12 +325,7 @@
     }
 
-    /**
-     * Check whether this node connects 2 ways.
-     *
-     * @return true if isReferredByWays(2) returns true
-     * @see #isReferredByWays(int)
-     */
-    public boolean isConnectionNode() {
-        return isReferredByWays(2);
+    @Override
+    public boolean isReferredByWays(int n) {
+        return isNodeReferredByWays(n);
     }
 
Index: /trunk/src/org/openstreetmap/josm/data/osm/NodeData.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/NodeData.java	(revision 13668)
+++ /trunk/src/org/openstreetmap/josm/data/osm/NodeData.java	(revision 13669)
@@ -99,3 +99,8 @@
         visitor.visit(this);
     }
+
+    @Override
+    public boolean isReferredByWays(int n) {
+        return false;
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 13668)
+++ /trunk/src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 13669)
@@ -1024,9 +1024,9 @@
 
     /**
-      Return true, if this primitive is referred by at least n ways
-      @param n Minimal number of ways to return true. Must be positive
+     * Return true, if this primitive is a node referred by at least n ways
+     * @param n Minimal number of ways to return true. Must be positive
      * @return {@code true} if this primitive is referred by at least n ways
      */
-    public final boolean isReferredByWays(int n) {
+    protected final boolean isNodeReferredByWays(int n) {
         // Count only referrers that are members of the same dataset (primitive can have some fake references, for example
         // when way is cloned
