diff --git a/EDMarketConnector.py b/EDMarketConnector.py
index 666574ae..47258ae0 100755
--- a/EDMarketConnector.py
+++ b/EDMarketConnector.py
@@ -11,6 +11,7 @@ import json
 from os import chdir, environ
 from os.path import dirname, expanduser, isdir, join
 import re
+import html
 import requests
 from time import gmtime, time, localtime, strftime, strptime
 import _strptime	# Workaround for http://bugs.python.org/issue7980
@@ -58,6 +59,21 @@ from theme import theme
 
 SERVER_RETRY = 5	# retry pause for Companion servers [s]
 
+SHIPYARD_HTML_TEMPLATE = """
+<!DOCTYPE HTML>
+<html>
+    <head>
+        <meta http-equiv="refresh" content="0; url={link}">
+        <title>Redirecting you to your {ship_name} at {provider_name}...</title>
+    </head>
+    <body>
+        <a href="{link}">
+            You should be redirected to your {ship_name} at {provider_name} shortly...
+        </a>
+    </body>
+</html>
+"""
+
 
 class AppWindow(object):
 
@@ -655,7 +671,18 @@ class AppWindow(object):
                 hotkeymgr.play_bad()
 
     def shipyard_url(self, shipname):
-        return plug.invoke(config.get('shipyard_provider'), 'EDSY', 'shipyard_url', monitor.ship(), monitor.is_beta)
+        provider = config.get('shipyard_provider') or 'EDSY'
+        target = plug.invoke(config.get('shipyard_provider'), 'EDSY', 'shipyard_url', monitor.ship(), monitor.is_beta)
+        file_name = join(config.app_dir, "last_shipyard.html")
+
+        with open(file_name, 'w') as f:
+            print(SHIPYARD_HTML_TEMPLATE.format(
+                link=html.escape(str(target)),
+                provider_name=html.escape(str(provider)),
+                ship_name=html.escape(str(shipname))
+            ), file=f)
+        
+        return f'file://localhost/{file_name}'
 
     def system_url(self, system):
         return plug.invoke(config.get('system_provider'),   'EDSM', 'system_url', monitor.system)
diff --git a/ttkHyperlinkLabel.py b/ttkHyperlinkLabel.py
index 627a987f..43fa7d29 100644
--- a/ttkHyperlinkLabel.py
+++ b/ttkHyperlinkLabel.py
@@ -112,36 +112,36 @@ class HyperlinkLabel(platform == 'darwin' and tk.Label or ttk.Label, object):
 
 
 def openurl(url):
-    if platform == 'win32':
-        # On Windows webbrowser.open calls os.startfile which calls ShellExecute which can't handle long arguments,
-        # so discover and launch the browser directly.
-        # https://blogs.msdn.microsoft.com/oldnewthing/20031210-00/?p=41553
+    # if platform == 'win32':
+    #     # On Windows webbrowser.open calls os.startfile which calls ShellExecute which can't handle long arguments,
+    #     # so discover and launch the browser directly.
+    #     # https://blogs.msdn.microsoft.com/oldnewthing/20031210-00/?p=41553
 
-        try:
-            hkey = OpenKeyEx(HKEY_CURRENT_USER, r'Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice')
-            (value, typ) = QueryValueEx(hkey, 'ProgId')
-            CloseKey(hkey)
-            if value in ['IE.HTTP', 'AppXq0fevzme2pys62n3e0fbqa7peapykr8v']:
-                # IE and Edge can't handle long arguments so just use webbrowser.open and hope
-                # https://blogs.msdn.microsoft.com/ieinternals/2014/08/13/url-length-limits/
-                cls = None
-            else:
-                cls = value
-        except:
-            cls  = 'https'
+    #     try:
+    #         hkey = OpenKeyEx(HKEY_CURRENT_USER, r'Software\Microsoft\Windows\Shell\Associations\UrlAssociations\https\UserChoice')
+    #         (value, typ) = QueryValueEx(hkey, 'ProgId')
+    #         CloseKey(hkey)
+    #         if value in ['IE.HTTP', 'AppXq0fevzme2pys62n3e0fbqa7peapykr8v']:
+    #             # IE and Edge can't handle long arguments so just use webbrowser.open and hope
+    #             # https://blogs.msdn.microsoft.com/ieinternals/2014/08/13/url-length-limits/
+    #             cls = None
+    #         else:
+    #             cls = value
+    #     except:
+    #         cls  = 'https'
 
-        if cls:
-            try:
-                hkey = OpenKeyEx(HKEY_CLASSES_ROOT, r'%s\shell\open\command' % cls)
-                (value, typ) = QueryValueEx(hkey, None)
-                CloseKey(hkey)
-                if 'iexplore' not in value.lower():
-                    if '%1' in value:
-                        subprocess.Popen(buf.value.replace('%1', url))
-                    else:
-                        subprocess.Popen('%s "%s"' % (buf.value, url))
-                    return
-            except:
-                pass
+    #     if cls:
+    #         try:
+    #             hkey = OpenKeyEx(HKEY_CLASSES_ROOT, r'%s\shell\open\command' % cls)
+    #             (value, typ) = QueryValueEx(hkey, None)
+    #             CloseKey(hkey)
+    #             if 'iexplore' not in value.lower():
+    #                 if '%1' in value:
+    #                     subprocess.Popen(buf.value.replace('%1', url))
+    #                 else:
+    #                     subprocess.Popen('%s "%s"' % (buf.value, url))
+    #                 return
+    #         except:
+    #             pass
 
     webbrowser.open(url)