diff --git a/tunnel/link.cgi b/tunnel/link.cgi
index 131e2885b..99149e256 100755
--- a/tunnel/link.cgi
+++ b/tunnel/link.cgi
@@ -137,6 +137,21 @@ else {
# read back the rest of the page
if ($header{'content-type'} =~ /text\/html/ && !$header{'x-no-links'}) {
while($_ = &read_http_connection($con)) {
+ # fix protocol relative src like
+ s/src='(\/\/[^']*)'/src='$protocol:$1'/gi;
+ s/src="(\/\/[^"]*)"/src="$protocol:$1"/gi;
+ s/src=(\/\/[^ "'>]*)/src=$protocol:$1/gi;
+
+ # Fix protocol relative hrefs like
+ s/href='(\/\/[^']*)'/href='$protocol:$1'/gi;
+ s/href="(\/\/[^"]*)"/href="$protocol:$1"/gi;
+ s/href=(\/\/[^ "'>]*)/href=$protocol:$1/gi;
+
+ # Fix protocol relative form actions like