Index: /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/OrphanSegment.java
===================================================================
--- /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/OrphanSegment.java	(revision 2622)
+++ /applications/editors/josm/plugins/validator/src/org/openstreetmap/josm/plugins/validator/tests/OrphanSegment.java	(revision 2623)
@@ -3,9 +3,8 @@
 import static org.openstreetmap.josm.tools.I18n.tr;
 
-import java.util.HashSet;
-import java.util.Set;
+import java.util.*;
 
-import org.openstreetmap.josm.data.osm.Segment;
-import org.openstreetmap.josm.data.osm.Way;
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.osm.*;
 import org.openstreetmap.josm.plugins.validator.Severity;
 import org.openstreetmap.josm.plugins.validator.Test;
@@ -48,7 +47,31 @@
 	}
 
+    @Override
+    public void visit(Collection<OsmPrimitive> selection) 
+    {
+        // If there is a partial selection, it may be false positives if a
+        // segment is selected, but not the container way. So, in this
+        // case, we must visit all ways, selected or not.
+
+        for (OsmPrimitive p : selection)
+        {
+            if( !p.deleted )
+            {
+                if( !partialSelection || p instanceof Segment )
+                    p.visit(this);
+            }
+        }
+        
+        if( partialSelection )
+        {
+            for( Way w : Main.ds.ways)
+                visit(w);
+        }
+    }
+    
 	@Override
 	public void visit(Segment s) 
 	{
+        
 		segments.add(s);
 	}
