Index: trunk/src/org/openstreetmap/josm/data/validation/Test.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/Test.java	(revision 9380)
+++ trunk/src/org/openstreetmap/josm/data/validation/Test.java	(revision 9381)
@@ -14,4 +14,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.search.SearchCompiler.InDataSourceArea;
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.command.DeleteCommand;
@@ -24,4 +25,5 @@
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.tools.GBC;
+import org.openstreetmap.josm.tools.Predicate;
 import org.openstreetmap.josm.tools.Utils;
 
@@ -37,4 +39,6 @@
 public class Test extends AbstractVisitor {
 
+    protected static final Predicate<OsmPrimitive> IN_DOWNLOADED_AREA = new InDataSourceArea(false);
+
     /** Name of the test */
     protected final String name;
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/Highways.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/Highways.java	(revision 9380)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/Highways.java	(revision 9381)
@@ -154,5 +154,6 @@
     public static boolean isHighwayLinkOkay(final Way way) {
         final String highway = way.get("highway");
-        if (highway == null || !highway.endsWith("_link")) {
+        if (highway == null || !highway.endsWith("_link")
+                || !IN_DOWNLOADED_AREA.evaluate(way.getNode(0)) || !IN_DOWNLOADED_AREA.evaluate(way.getNode(way.getNodesCount()-1))) {
             return true;
         }
Index: trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java	(revision 9380)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java	(revision 9381)
@@ -13,5 +13,4 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.actions.search.SearchCompiler.InDataSourceArea;
 import org.openstreetmap.josm.command.ChangePropertyCommand;
 import org.openstreetmap.josm.command.Command;
@@ -28,5 +27,4 @@
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.tools.Geometry;
-import org.openstreetmap.josm.tools.Predicate;
 
 /**
@@ -46,6 +44,4 @@
     /** Values for {@code power} key interpreted as allowed power items */
     protected static final Collection<String> POWER_ALLOWED_TAGS = Arrays.asList("switch", "transformer", "busbar", "generator", "switchgear");
-
-    protected static final Predicate<OsmPrimitive> IN_DOWNLOADED_AREA = new InDataSourceArea(false);
 
     private final Map<Way, String> towerPoleTagMap = new HashMap<>();
