Index: test/unit/org/openstreetmap/josm/data/validation/tests/SelfIntersectingWayTest.java
===================================================================
--- test/unit/org/openstreetmap/josm/data/validation/tests/SelfIntersectingWayTest.java	(revision 11148)
+++ test/unit/org/openstreetmap/josm/data/validation/tests/SelfIntersectingWayTest.java	(working copy)
@@ -43,6 +43,7 @@
 
     /**
      * Self-Intersection at first (+ last) node of closed way
+     * This is considered okay
      */
     @Test
     public void TestClosedWay() {
@@ -60,12 +61,12 @@
         w.setNodes(wayNodes);
         SelfIntersectingWay test = new SelfIntersectingWay();
         test.visit(w);
-        Assert.assertEquals(1, test.getErrors().size());
-        Assert.assertTrue(test.getErrors().iterator().next().getHighlighted().contains(nodes.get(0)));
+        Assert.assertEquals(0, test.getErrors().size());
     }
 
     /**
      * Self-Intersection at first node of unclosed way
+     * This is considered okay
      */
     @Test
     public void TestUnclosedWayFirst() {
@@ -82,12 +83,12 @@
         w.setNodes(wayNodes);
         SelfIntersectingWay test = new SelfIntersectingWay();
         test.visit(w);
-        Assert.assertEquals(1, test.getErrors().size());
-        Assert.assertTrue(test.getErrors().iterator().next().getHighlighted().contains(nodes.get(0)));
+        Assert.assertEquals(0, test.getErrors().size());
     }
 
     /**
-     * Self-Intersection at first node of unclosed way
+     * Self-Intersection at last node of unclosed way
+     * This is considered okay
      */
     @Test
     public void TestUnclosedWayLast() {
@@ -96,7 +97,7 @@
         Way w = (Way) OsmUtils.createPrimitive("way ");
         List<Node> wayNodes = new ArrayList<>();
         wayNodes.add(nodes.get(0));
-        wayNodes.add(nodes.get(1)); // problem
+        wayNodes.add(nodes.get(1)); // problem node
         wayNodes.add(nodes.get(2));
         wayNodes.add(nodes.get(3));
         wayNodes.add(nodes.get(4));
@@ -104,8 +105,7 @@
         w.setNodes(wayNodes);
         SelfIntersectingWay test = new SelfIntersectingWay();
         test.visit(w);
-        Assert.assertEquals(1, test.getErrors().size());
-        Assert.assertTrue(test.getErrors().iterator().next().getHighlighted().contains(nodes.get(1)));
+        Assert.assertEquals(0, test.getErrors().size());
     }
 
     /**
Index: src/org/openstreetmap/josm/data/validation/tests/SelfIntersectingWay.java
===================================================================
--- src/org/openstreetmap/josm/data/validation/tests/SelfIntersectingWay.java	(revision 11148)
+++ src/org/openstreetmap/josm/data/validation/tests/SelfIntersectingWay.java	(working copy)
@@ -31,13 +31,7 @@
     @Override
     public void visit(Way w) {
         Set<Node> nodes = new HashSet<>();
-        int last = w.getNodesCount();
-        if (last < 2)
-            return;
-        if (w.firstNode() == w.lastNode())
-            last--; // closed way, ignore last node
-        nodes.add(w.firstNode());
-        for (int i = 1; i < last; i++) {
+        for (int i = 1; i < w.getNodesCount() - 1; i++) {
             Node n = w.getNode(i);
             if (nodes.contains(n)) {
                 errors.add(TestError.builder(this, Severity.WARNING, SELF_INTERSECT)
