Index: /trunk/src/org/openstreetmap/josm/tools/Tag2Link.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/Tag2Link.java	(revision 15793)
+++ /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);
         }
 
Index: /trunk/test/unit/org/openstreetmap/josm/tools/Tag2LinkTest.java
===================================================================
--- /trunk/test/unit/org/openstreetmap/josm/tools/Tag2LinkTest.java	(revision 15793)
+++ /trunk/test/unit/org/openstreetmap/josm/tools/Tag2LinkTest.java	(revision 15794)
@@ -22,4 +22,19 @@
     void checkLinks(String... expected) {
         Assert.assertEquals(Arrays.asList(expected), links);
+    }
+
+    /**
+     * Unit test of function {@link Tag2Link#getLinksForTag}.
+     */
+    @Test
+    public void testWebsite() {
+        Tag2Link.getLinksForTag("website", "http://www.openstreetmap.org/", this::addLink);
+        checkLinks("Open www.openstreetmap.org // http://www.openstreetmap.org/");
+        links.clear();
+        Tag2Link.getLinksForTag("website", "https://www.openstreetmap.org/", this::addLink);
+        checkLinks("Open www.openstreetmap.org // https://www.openstreetmap.org/");
+        links.clear();
+        Tag2Link.getLinksForTag("website", "www.openstreetmap.org", this::addLink);
+        checkLinks("Open www.openstreetmap.org // http://www.openstreetmap.org");
     }
 
