Index: trunk/src/org/openstreetmap/josm/tools/Tag2Link.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/Tag2Link.java	(revision 15791)
+++ trunk/src/org/openstreetmap/josm/tools/Tag2Link.java	(revision 15794)
@@ -137,16 +137,20 @@
 
         // Common
-        final boolean valueIsURL = value.matches("^(http:|https:|www\\.).*");
-        if (key.matches("^(.+[:_])?website([:_].+)?$") && valueIsURL) {
-            linkConsumer.acceptLink(getLinkName(value, key), value);
+        final String validURL = value.startsWith("http:") || value.startsWith("https:")
+                ? value
+                : value.startsWith("www.")
+                ? "http://" + value
+                : null;
+        if (key.matches("^(.+[:_])?website([:_].+)?$") && validURL != null) {
+            linkConsumer.acceptLink(getLinkName(validURL, key), validURL);
         }
-        if (key.matches("^(.+[:_])?source([:_].+)?$") && valueIsURL) {
-            linkConsumer.acceptLink(getLinkName(value, key), value);
+        if (key.matches("^(.+[:_])?source([:_].+)?$") && validURL != null) {
+            linkConsumer.acceptLink(getLinkName(validURL, key), validURL);
         }
-        if (key.matches("^(.+[:_])?url([:_].+)?$") && valueIsURL) {
-            linkConsumer.acceptLink(getLinkName(value, key), value);
+        if (key.matches("^(.+[:_])?url([:_].+)?$") && validURL != null) {
+            linkConsumer.acceptLink(getLinkName(validURL, key), validURL);
         }
-        if (key.matches("image") && valueIsURL) {
-            linkConsumer.acceptLink(tr("View image"), value);
+        if (key.matches("image") && validURL != null) {
+            linkConsumer.acceptLink(tr("View image"), validURL);
         }
 
