diff --git a/js/piwik.js b/js/piwik.js
index 7a978ce92584d4cd9e36e08a0e20421b78e457b3..ecfff3951f9ecea1ae3a3da1c3b8d72917d7bd68 100644
--- a/js/piwik.js
+++ b/js/piwik.js
@@ -971,7 +971,7 @@ var
 				}
 			};
 			script.onload = onLoad;
-			script.src = root + 'plugins/Overlay/client/client.js';
+			script.src = root + 'plugins/Overlay/client/client.js?v=1';
 			var head = document.getElementsByTagName('head')[0];
 			head.appendChild(script);
 		}
diff --git a/piwik.js b/piwik.js
index 594e35a032a3efc2c902f7c95ddbe570c4e68a94..54e9cfb2ef5d02fcc113e3bc64f8c19e9c5ffeb6 100644
--- a/piwik.js
+++ b/piwik.js
@@ -14,7 +14,7 @@ return typeof f==="function"?m({"":n},""):n}throw new SyntaxError("JSON.parse")}
 }function j(){var L;if(n.addEventListener){J(n,"DOMContentLoaded",function i(){n.removeEventListener("DOMContentLoaded",i,false);F()})}else{if(n.attachEvent){n.attachEvent("onreadystatechange",function i(){if(n.readyState==="complete"){n.detachEvent("onreadystatechange",i);F()}});if(n.documentElement.doScroll&&w===w.top){(function i(){if(!k){try{n.documentElement.doScroll("left")}catch(M){setTimeout(i,0);return}F()}}())}}}if((new RegExp("WebKit")).test(c.userAgent)){L=setInterval(function(){if(k||/loaded|complete/.test(n.readyState)){clearInterval(L);F()}},10)}J(w,"load",F,false)}function q(){var i="";try{i=w.top.document.referrer}catch(M){if(w.parent){try{i=w.parent.document.referrer}catch(L){i=""}}}if(i===""){i=n.referrer}return i}function f(i){var M=new RegExp("^([a-z]+):"),L=M.exec(i);return L?L[1]:null}function b(i){var M=new RegExp("^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)"),L=M.exec(i);return L?L[1]:i}function x(M,L){var P=new RegExp("^(?:https?|ftp)(?::/*(?:[^?]+)[?])([^#]+)"),O=P.exec(M),N=new RegExp("(?:^|&)"+L+"=([^&]*)"),i=O?N.exec(O[1]):0;
 return i?v(i[1]):""}function m(i){return d(g(i))}function I(ab){var N=function(W,i){return(W<<i)|(W>>>(32-i))},ac=function(ai){var ah="",ag,W;for(ag=7;ag>=0;ag--){W=(ai>>>(ag*4))&15;ah+=W.toString(16)}return ah},Q,ae,ad,M=[],U=1732584193,S=4023233417,R=2562383102,P=271733878,O=3285377520,aa,Z,Y,X,V,af,L,T=[];ab=m(ab);L=ab.length;for(ae=0;ae<L-3;ae+=4){ad=ab.charCodeAt(ae)<<24|ab.charCodeAt(ae+1)<<16|ab.charCodeAt(ae+2)<<8|ab.charCodeAt(ae+3);T.push(ad)}switch(L&3){case 0:ae=2147483648;break;case 1:ae=ab.charCodeAt(L-1)<<24|8388608;break;case 2:ae=ab.charCodeAt(L-2)<<24|ab.charCodeAt(L-1)<<16|32768;break;case 3:ae=ab.charCodeAt(L-3)<<24|ab.charCodeAt(L-2)<<16|ab.charCodeAt(L-1)<<8|128;break}T.push(ae);while((T.length&15)!==14){T.push(0)}T.push(L>>>29);T.push((L<<3)&4294967295);for(Q=0;Q<T.length;Q+=16){for(ae=0;ae<16;ae++){M[ae]=T[Q+ae]}for(ae=16;ae<=79;ae++){M[ae]=N(M[ae-3]^M[ae-8]^M[ae-14]^M[ae-16],1)}aa=U;Z=S;Y=R;X=P;V=O;for(ae=0;ae<=19;ae++){af=(N(aa,5)+((Z&Y)|(~Z&X))+V+M[ae]+1518500249)&4294967295;
 V=X;X=Y;Y=N(Z,30);Z=aa;aa=af}for(ae=20;ae<=39;ae++){af=(N(aa,5)+(Z^Y^X)+V+M[ae]+1859775393)&4294967295;V=X;X=Y;Y=N(Z,30);Z=aa;aa=af}for(ae=40;ae<=59;ae++){af=(N(aa,5)+((Z&Y)|(Z&X)|(Y&X))+V+M[ae]+2400959708)&4294967295;V=X;X=Y;Y=N(Z,30);Z=aa;aa=af}for(ae=60;ae<=79;ae++){af=(N(aa,5)+(Z^Y^X)+V+M[ae]+3395469782)&4294967295;V=X;X=Y;Y=N(Z,30);Z=aa;aa=af}U=(U+aa)&4294967295;S=(S+Z)&4294967295;R=(R+Y)&4294967295;P=(P+X)&4294967295;O=(O+V)&4294967295}af=ac(U)+ac(S)+ac(R)+ac(P)+ac(O);return af.toLowerCase()}function C(M,i,L){if(M==="translate.googleusercontent.com"){if(L===""){L=i}i=x(i,"u");M=b(i)}else{if(M==="cc.bingj.com"||M==="webcache.googleusercontent.com"||M.slice(0,5)==="74.6."){i=n.links[0].href;M=b(i)}}return[M,i,L]}function r(L){var i=L.length;if(L.charAt(--i)==="."){L=L.slice(0,i)}if(L.slice(0,2)==="*."){L=L.slice(1)}return L}function K(L){if(!h(L)){L=L.text||"";var i=n.getElementsByTagName("title");if(i&&p(i[0])){L=i[0].text}}return L}function s(O,S){var U="Piwik_Overlay";var R=n.referrer;
-var i=O;i=i.substring(0,i.length-9);i.substring(i.substring(0,7)==="http://"?7:8,i.length);R.substring(R.substring(0,7)==="http://"?7:8,R.length);if(R.substring(0,i.length)===i){var M=new RegExp("^"+i+"index\\.php\\?module=Overlay&action=startOverlaySession&idsite=([0-9]+)&period=([^&]+)&date=([^&]+)$");var N=R.match(M);if(N){var P=N[1];if(parseInt(P,10)!==S){return false}var Q=N[2];var L=N[3];window.name=U+"###"+Q+"###"+L}}var T=w.name.split("###");return T.length===3&&T[0]===U}function B(M,S){var T=window.name.split("###");var R=M.substring(0,M.length-9);var N=T[1];var i=T[2];var L=false;var O=function(){if(!L){L=true;Piwik_Overlay_Client.initialize(R,S,N,i)}};var Q=document.createElement("script");Q.type="text/javascript";Q.onreadystatechange=function(){if(this.readyState==="loaded"||this.readyState==="complete"){O()}};Q.onload=O;Q.src=R+"plugins/Overlay/client/client.js";var P=document.getElementsByTagName("head")[0];P.appendChild(Q)}function t(af,aE){var O=C(n.domain,w.location.href,q()),aX=r(O[0]),bb=O[1],aK=O[2],aI="GET",N=af||"",a1=aE||"",av,al=n.title,an="7z|aac|ar[cj]|as[fx]|avi|bin|csv|deb|dmg|doc|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|ms[ip]|od[bfgpst]|og[gv]|pdf|phps|png|ppt|qtm?|ra[mr]?|rpm|sea|sit|tar|t?bz2?|tgz|torrent|txt|wav|wm[av]|wpd||xls|xml|z|zip",aG=[aX],R=[],az=[],ae=[],aF=500,S,ag,T,U,ap=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],ak=["pk_kwd","piwik_kwd","utm_term"],a9="_pk_",X,ba,V=false,a4,ar,au,ac=63072000000,ad=1800000,aw=15768000000,aa=n.location.protocol==="https",Q=false,aA={},a5=200,aQ={},a2={},aN=false,aL=false,aJ,aB,Y,ao=I,aM,at;
+var i=O;i=i.substring(0,i.length-9);i.substring(i.substring(0,7)==="http://"?7:8,i.length);R.substring(R.substring(0,7)==="http://"?7:8,R.length);if(R.substring(0,i.length)===i){var M=new RegExp("^"+i+"index\\.php\\?module=Overlay&action=startOverlaySession&idsite=([0-9]+)&period=([^&]+)&date=([^&]+)$");var N=R.match(M);if(N){var P=N[1];if(parseInt(P,10)!==S){return false}var Q=N[2];var L=N[3];window.name=U+"###"+Q+"###"+L}}var T=w.name.split("###");return T.length===3&&T[0]===U}function B(M,S){var T=window.name.split("###");var R=M.substring(0,M.length-9);var N=T[1];var i=T[2];var L=false;var O=function(){if(!L){L=true;Piwik_Overlay_Client.initialize(R,S,N,i)}};var Q=document.createElement("script");Q.type="text/javascript";Q.onreadystatechange=function(){if(this.readyState==="loaded"||this.readyState==="complete"){O()}};Q.onload=O;Q.src=R+"plugins/Overlay/client/client.js?v=1";var P=document.getElementsByTagName("head")[0];P.appendChild(Q)}function t(af,aE){var O=C(n.domain,w.location.href,q()),aX=r(O[0]),bb=O[1],aK=O[2],aI="GET",N=af||"",a1=aE||"",av,al=n.title,an="7z|aac|ar[cj]|as[fx]|avi|bin|csv|deb|dmg|doc|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|ms[ip]|od[bfgpst]|og[gv]|pdf|phps|png|ppt|qtm?|ra[mr]?|rpm|sea|sit|tar|t?bz2?|tgz|torrent|txt|wav|wm[av]|wpd||xls|xml|z|zip",aG=[aX],R=[],az=[],ae=[],aF=500,S,ag,T,U,ap=["pk_campaign","piwik_campaign","utm_campaign","utm_source","utm_medium"],ak=["pk_kwd","piwik_kwd","utm_term"],a9="_pk_",X,ba,V=false,a4,ar,au,ac=63072000000,ad=1800000,aw=15768000000,aa=n.location.protocol==="https",Q=false,aA={},a5=200,aQ={},a2={},aN=false,aL=false,aJ,aB,Y,ao=I,aM,at;
 function aS(bk,bh,bg,bj,bf,bi){if(V){return}var be;if(bg){be=new Date();be.setTime(be.getTime()+bg)}n.cookie=bk+"="+g(bh)+(bg?";expires="+be.toGMTString():"")+";path="+(bj||"/")+(bf?";domain="+bf:"")+(bi?";secure":"")}function ab(bg){if(V){return 0}var be=new RegExp("(^|;)[ ]*"+bg+"=([^;]*)"),bf=be.exec(n.cookie);return bf?v(bf[2]):0}function a6(be){var bf;if(T){bf=new RegExp("#.*");return be.replace(bf,"")}return be}function aW(bg,be){var bh=f(be),bf;if(bh){return be}if(be.slice(0,1)==="/"){return f(bg)+"://"+b(bg)+be}bg=a6(bg);if((bf=bg.indexOf("?"))>=0){bg=bg.slice(0,bf)}if((bf=bg.lastIndexOf("/"))!==bg.length-1){bg=bg.slice(0,bf+1)}return bg+be}function aH(bh){var bf,be,bg;for(bf=0;bf<aG.length;bf++){be=r(aG[bf].toLowerCase());if(bh===be){return true}if(be.slice(0,1)==="."){if(bh===be.slice(1)){return true}bg=bh.length-be.length;if((bg>0)&&(bh.slice(bg)===be)){return true}}}return false}function bd(be){var bf=new Image(1,1);bf.onload=function(){};bf.src=N+(N.indexOf("?")<0?"?":"&")+be
 }function aT(be){try{var bg=w.XMLHttpRequest?new w.XMLHttpRequest():w.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):null;bg.open("POST",N,true);bg.onreadystatechange=function(){if(this.readyState===4&&this.status!==200){bd(be)}};bg.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");bg.send(be)}catch(bf){bd(be)}}function aq(bg,bf){var be=new Date();if(!a4){if(aI==="POST"){aT(bg)}else{bd(bg)}e=be.getTime()+bf}}function aR(be){return a9+be+"."+a1+"."+aM}function P(){if(V){return"0"}if(!p(c.cookieEnabled)){var be=aR("testcookie");aS(be,"1");return ab(be)==="1"?"1":"0"}return c.cookieEnabled?"1":"0"}function aC(){aM=ao((X||aX)+(ba||"/")).slice(0,4)}function Z(){var bf=aR("cvar"),be=ab(bf);if(be.length){be=JSON2.parse(be);if(y(be)){return be}}return{}}function M(){if(Q===false){Q=Z()}}function a0(){var be=new Date();aJ=be.getTime()}function W(bi,bf,be,bh,bg,bj){aS(aR("id"),bi+"."+bf+"."+be+"."+bh+"."+bg+"."+bj,ac,ba,X,aa)}function L(){var bf=new Date(),be=Math.round(bf.getTime()/1000),bh=ab(aR("id")),bg;
 if(bh){bg=bh.split(".");bg.unshift("0")}else{if(!at){at=ao((c.userAgent||"")+(c.platform||"")+JSON2.stringify(a2)+be).slice(0,16)}bg=["1",at,be,0,be,"",""]}return bg}function i(){var be=ab(aR("ref"));if(be.length){try{be=JSON2.parse(be);if(y(be)){return be}}catch(bf){}}return["","",0,""]}function am(bg,bF,bG,bi){var bD,bf=new Date(),bo=Math.round(bf.getTime()/1000),bI,bE,bk,bw,bA,bn,by,bl,bC,bj=1024,bJ,br,bz=Q,bu=aR("id"),bp=aR("ses"),bq=aR("ref"),bK=aR("cvar"),bx=L(),bt=ab(bp),bB=i(),bH=av||bb,bm,be;if(V){V=false;aS(bu,"",-86400,ba,X);aS(bp,"",-86400,ba,X);aS(bK,"",-86400,ba,X);aS(bq,"",-86400,ba,X);V=true}if(a4){return""}bI=bx[0];bE=bx[1];bw=bx[2];bk=bx[3];bA=bx[4];bn=bx[5];if(!p(bx[6])){bx[6]=""}by=bx[6];if(!p(bi)){bi=""}var bs=document.characterSet||document.charset;if(!bs||bs.toLowerCase()==="utf-8"||bs.toLowerCase()==="iso-8859-1"||bs.toLowerCase()==="iso-8859-15"){bs=null}bm=bB[0];be=bB[1];bl=bB[2];bC=bB[3];if(!bt){bk++;bn=bA;if(!au||!bm.length){for(bD in ap){if(Object.prototype.hasOwnProperty.call(ap,bD)){bm=x(bH,ap[bD]);
@@ -27,4 +27,4 @@ a2[bf]=(bg&&bg.enabledPlugin)?"1":"0"}}}if(typeof navigator.javaEnabled!=="unkno
 if(!p(bg)){bg="visit"}if(bg==="page"||bg===3){be=aA[bf]}else{if(bg==="visit"||bg===2){M();be=Q[bf]}}if(!p(be)||(be&&be[0]==="")){return false}return be},deleteCustomVariable:function(be,bf){if(this.getCustomVariable(be,bf)){this.setCustomVariable(be,"","",bf)}},setLinkTrackingTimer:function(be){aF=be},setDownloadExtensions:function(be){an=be},addDownloadExtensions:function(be){an+="|"+be},setDomains:function(be){aG=h(be)?[be]:be;aG.push(aX)},setIgnoreClasses:function(be){R=h(be)?[be]:be},setRequestMethod:function(be){aI=be||"GET"},setReferrerUrl:function(be){aK=be},setCustomUrl:function(be){av=aW(bb,be)},setDocumentTitle:function(be){al=be},setDownloadClasses:function(be){az=h(be)?[be]:be},setLinkClasses:function(be){ae=h(be)?[be]:be},setCampaignNameKey:function(be){ap=h(be)?[be]:be},setCampaignKeywordKey:function(be){ak=h(be)?[be]:be},discardHashTag:function(be){T=be},setCookieNamePrefix:function(be){a9=be;Q=Z()},setCookieDomain:function(be){X=r(be);aC()},setCookiePath:function(be){ba=be;
 aC()},setVisitorCookieTimeout:function(be){ac=be*1000},setSessionCookieTimeout:function(be){ad=be*1000},setReferralCookieTimeout:function(be){aw=be*1000},setConversionAttributionFirstReferrer:function(be){au=be},disableCookies:function(){V=true;a2.cookie="0"},setDoNotTrack:function(bf){var be=c.doNotTrack||c.msDoNotTrack;a4=bf&&(be==="yes"||be==="1");if(a4){this.disableCookies()}},addListener:function(bf,be){aO(bf,be)},enableLinkTracking:function(be){if(k){ax(be)}else{u.push(function(){ax(be)})}},setHeartBeatTimer:function(bg,bf){var be=new Date();S=be.getTime()+bg*1000;ag=bf*1000},killFrame:function(){if(w.location!==w.top.location){w.top.location=w.location}},redirectFile:function(be){if(w.location.protocol==="file:"){w.location=be}},setCountPreRendered:function(be){ar=be},trackGoal:function(be,bg,bf){ai(function(){aD(be,bg,bf)})},trackLink:function(bf,be,bg){ai(function(){aZ(bf,be,bg)})},trackPageView:function(be,bf){if(s(N,a1)){ai(function(){B(N,a1)})}else{ai(function(){ay(be,bf)})}},trackSiteSearch:function(be,bg,bf){ai(function(){aj(be,bg,bf)
 })},setEcommerceView:function(bh,be,bg,bf){if(!p(bg)||!bg.length){bg=""}else{if(bg instanceof Array){bg=JSON2.stringify(bg)}}aA[5]=["_pkc",bg];if(p(bf)&&String(bf).length){aA[2]=["_pkp",bf]}if((!p(bh)||!bh.length)&&(!p(be)||!be.length)){return}if(p(bh)&&bh.length){aA[3]=["_pks",bh]}if(!p(be)||!be.length){be=""}aA[4]=["_pkn",be]},addEcommerceItem:function(bi,be,bg,bf,bh){if(bi.length){aQ[bi]=[bi,be,bg,bf,bh]}},trackEcommerceOrder:function(be,bi,bh,bg,bf,bj){aU(be,bi,bh,bg,bf,bj)},trackEcommerceCartUpdate:function(be){a8(be)}}}function o(){return{push:G}}J(w,"beforeunload",H,false);j();Date.prototype.getTimeAlias=Date.prototype.getTime;A=new t();for(D=0;D<_paq.length;D++){G(_paq[D])}_paq=new o();return{addPlugin:function(i,L){a[i]=L},getTracker:function(i,L){return new t(i,L)},getAsyncTracker:function(){return A}}}()),piwik_track,piwik_log=function(b,f,d,g){function a(h){try{return eval("piwik_"+h)}catch(i){}return}var c,e=Piwik.getTracker(d,f);e.setDocumentTitle(b);e.setCustomData(g);
-c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}};
\ No newline at end of file
+c=a("tracker_pause");if(c){e.setLinkTrackingTimer(c)}c=a("download_extensions");if(c){e.setDownloadExtensions(c)}c=a("hosts_alias");if(c){e.setDomains(c)}c=a("ignore_classes");if(c){e.setIgnoreClasses(c)}e.trackPageView();if(a("install_tracker")){piwik_track=function(i,k,j,h){e.setSiteId(k);e.setTrackerUrl(j);e.trackLink(i,h)};e.enableLinkTracking()}};
diff --git a/plugins/CoreHome/templates/broadcast.js b/plugins/CoreHome/templates/broadcast.js
index f3efff7bf1f5ab4a38a08350af1c9950acca3bf2..6e153702e4719da76b426109fa1156336ad09b68 100644
--- a/plugins/CoreHome/templates/broadcast.js
+++ b/plugins/CoreHome/templates/broadcast.js
@@ -70,6 +70,8 @@ var broadcast = {
      * 1. after calling $.history.init();
      * 2. after calling $.history.load();  //look at broadcast.changeParameter();
      * 3. after pushing "Go Back" button of a browser
+	 * 
+	 * * Note: the method is manipulated in Overlay/templates/index.js - keep this in mind when making changes.
      *
      * @param {string}  hash to load page with
      * @return {void}
diff --git a/plugins/Overlay/Controller.php b/plugins/Overlay/Controller.php
index ecb5192108a769dac53dd92f082dedc40562d696..5e860730481db77472f9b659881b8d52747adfa2 100644
--- a/plugins/Overlay/Controller.php
+++ b/plugins/Overlay/Controller.php
@@ -134,6 +134,7 @@ class Piwik_Overlay_Controller extends Piwik_Controller
 		$urls = $sitesManager->getSiteUrlsFromId($idSite);
 		
 		echo '
+			<html><head><title></title></head><body>
 			<script type="text/javascript">
 				function handleProtocol(url) {
 					if (' . ($this->usingSsl() ? 'true' : 'false') . ') {
@@ -158,7 +159,15 @@ class Piwik_Overlay_Controller extends Piwik_Controller
 						var testUrl = removeUrlPrefix(knownUrls[i]);
 						if (urlToRedirectWithoutPrefix.substr(0, testUrl.length) == testUrl) {
 							match = true;
-							window.location.href = handleProtocol(urlToRedirect);
+							if (navigator.appName == "Microsoft Internet Explorer") {
+								// internet explorer loses the referrer if we use window.location.href=X
+								var referLink = document.createElement("a");
+								referLink.href = handleProtocol(urlToRedirect);
+								document.body.appendChild(referLink);
+								referLink.click();
+							} else {
+								window.location.href = handleProtocol(urlToRedirect);
+							}
 							break;
 						}
 					}
@@ -174,6 +183,7 @@ class Piwik_Overlay_Controller extends Piwik_Controller
 					window.location.href = handleProtocol("'.$site['main_url'].'");
 				};
 			</script>
+			</body></html>
 		';
 	}
 	
diff --git a/plugins/Overlay/client/client.css b/plugins/Overlay/client/client.css
index 9484de54587d60a41bdda7f10946e2d9708b4934..05e2e87169eb61235a6c573a37ae2ba42ad9450a 100644
--- a/plugins/Overlay/client/client.css
+++ b/plugins/Overlay/client/client.css
@@ -121,16 +121,13 @@
 
 #PIS_StatusBar {
 	padding: 10px 0;
-	position: absolute;
 	position: fixed;
 	z-index: 10020;
 	bottom: 0;
 	right: 0;
-	background: #ccc;
 	border-top: 1px solid #ccc;
 	border-left: 1px solid #ccc;
 	background: #fbfbfb;
-	
 	-webkit-border-top-left-radius: 6px;
 	-webkit-border-top-right-radius: 0px;
 	-webkit-border-bottom-right-radius: 0px;
@@ -142,7 +139,7 @@
 	border-top-left-radius: 6px;
 	border-top-right-radius: 0px;
 	border-bottom-right-radius: 0px;
-	border-bottom-left-radius: 0px; 
+	border-bottom-left-radius: 0px;
 }
 
 #PIS_StatusBar .PIS_Item {
diff --git a/plugins/Overlay/client/client.js b/plugins/Overlay/client/client.js
index e4eb418289d435d400cd4a57d5738f49d9ec7d4c..64b3aede6bfc0531d1d1421a5f22a8bd62d6fa90 100644
--- a/plugins/Overlay/client/client.js
+++ b/plugins/Overlay/client/client.js
@@ -82,6 +82,49 @@ var Piwik_Overlay_Client = (function() {
 		return el;
 	}
 	
+	/** Special treatment for some internet explorers */
+	var ieStatusBarEventsBound = false;
+	function handleIEStatusBar() {
+		if (navigator.appVersion.indexOf("MSIE 7.") == -1
+			&& navigator.appVersion.indexOf("MSIE 8.") == -1) {
+			// this is not IE8 or lower
+			return;
+		}
+		
+		// IE7/8 can't handle position:fixed so we need to do it by hand
+		statusBar.css({
+			position: 'absolute',
+			right: 'auto',
+			bottom: 'auto',
+			left: 0,
+			top: 0
+		});
+		
+		var position = function() {
+			var scrollY = document.body.scrollTop;
+			var scrollX = document.body.scrollLeft;
+			statusBar.css({
+				top: (scrollY + $(window).height() - statusBar.outerHeight()) + 'px',
+				left: (scrollX + $(window).width() - statusBar.outerWidth()) + 'px'
+			});
+		};
+		
+		position();
+		
+		statusBar.css({width: 'auto'});
+		if (statusBar.width() < 350) {
+			statusBar.width(350);
+		} else {
+			statusBar.width(statusBar.width());
+		}
+		
+		if (!ieStatusBarEventsBound) {
+			ieStatusBarEventsBound = true;
+			$(window).resize(position);
+			$(window).scroll(position);
+		}
+	}
+	
 	return {
 		
 		/** Initialize in-site analytics */
@@ -142,7 +185,7 @@ var Piwik_Overlay_Client = (function() {
 			};
 			script.onload = onLoad;
 			
-			script.src = piwikRoot+relativePath;
+			script.src = piwikRoot+relativePath+'?v=1';
 			head.appendChild(script);
 		},
 		
@@ -183,13 +226,27 @@ var Piwik_Overlay_Client = (function() {
 			
 			statusBar.show().append(item);
 			
+			handleIEStatusBar();
+			
 			return function() {
 				item.remove();
 				if (statusBar.children().size() == 0) {
 					statusBar.hide();
+				} else {
+					handleIEStatusBar();
 				}
 			};
 		},
+
+		/** Hide all notifications with a certain class */
+		hideNotifications: function(className) {
+			statusBar.find('.PIS_' + className).remove();
+			if (statusBar.children().size() == 0) {
+				statusBar.hide();
+			} else {
+				handleIEStatusBar();
+			}
+		},
 		
 		/**
 		 * Initialize a loading notification
diff --git a/plugins/Overlay/client/followingpages.js b/plugins/Overlay/client/followingpages.js
index 093b960f9b26b7fd7fcd65a2caf2c2403b7ad8fb..edb9c40e1e65def2a716e80c952e5ab65fd93393 100644
--- a/plugins/Overlay/client/followingpages.js
+++ b/plugins/Overlay/client/followingpages.js
@@ -156,7 +156,7 @@ var Piwik_Overlay_FollowingPages = (function() {
 
 	/** Create the link tag element */
 	function createLinkTag(linkTag, linkUrl, data, body) {
-		if (typeof linkTag[0].piwikTagElement != 'undefined') {
+		if (typeof linkTag[0].piwikTagElement != 'undefined' && linkTag[0].piwikTagElement !== null) {
 			// this link tag already has a tag element. happens in rare cases.
 			return;
 		}
@@ -220,7 +220,7 @@ var Piwik_Overlay_FollowingPages = (function() {
 						inlineChild = linkTag.children().eq(0);
 					}
 
-					if (linkTag.css('visibility') == 'hidden' || (
+					if (getVisibility(linkTag) == 'hidden' || (
 						// in case of hasOneChild: jquery always returns linkTag.is(':visible')=false
 						!linkTag.is(':visible') && !(hasOneChild && inlineChild && inlineChild.is(':visible'))
 						)) {
@@ -230,7 +230,7 @@ var Piwik_Overlay_FollowingPages = (function() {
 					}
 
 					tagElement.attr('class', 'PIS_LinkTag'); // reset class
-					if (tagElement.data('piwik-highlighted')) {
+					if (tagElement[0].piwikHighlighted) {
 						tagElement.addClass('PIS_Highlighted');
 					}
 
@@ -277,11 +277,11 @@ var Piwik_Overlay_FollowingPages = (function() {
 			// remove the tag element from the dom
 			if (linkTag && linkTag[0] && linkTag[0].piwikTagElement) {
 				tagElement = linkTag[0].piwikTagElement;
-				if (tagElement.data('piwik-highlighted')) {
+				if (tagElement[0].piwikHighlighted) {
 					unHighlightLink(linkTag, tagToRemove.index1);
 				}
 				tagElement.remove();
-				delete linkTag[0].piwikTagElement;
+				linkTag[0].piwikTagElement = null;
 			}
 			// remove the link from the index
 			linksOnPage[tagToRemove.index1].splice(tagToRemove.index2, 1);
@@ -294,6 +294,18 @@ var Piwik_Overlay_FollowingPages = (function() {
 			callback();
 		}
 	}
+	
+	/** Get the visibility of an element */
+	function getVisibility(el) {
+		var visibility = el.css('visibility');
+		if (visibility == 'inherit') {
+			el = el.parent();
+			if (el.size() > 0) {
+				return getVisibility(el);
+			}
+		}
+		return visibility;
+	}
 
 	/**
 	 * Find out whether a link has only one child. Using .children().size() == 1 doesn't work
@@ -321,7 +333,7 @@ var Piwik_Overlay_FollowingPages = (function() {
 	/** Check whether new links have been added to the dom */
 	function findNewLinks() {
 		var newLinks = $('a').filter(function() {
-			return typeof this.piwikDiscovered == 'undefined';
+			return typeof this.piwikDiscovered == 'undefined' || this.piwikDiscovered === null;
 		});
 
 		if (newLinks.size() == 0) {
@@ -395,20 +407,28 @@ var Piwik_Overlay_FollowingPages = (function() {
 
 		var padding = '&nbsp;&nbsp;';
 		highlightElements[3].html(padding + text + padding).css({
-			minWidth: (width + 4) + 'px',
+			width: 'auto',
 			top: offset.top + height,
 			left: offset.left - 2
 		}).show();
+		if (highlightElements[3].width() < width + 4) {
+			// we cannot use minWidth because of IE7
+			highlightElements[3].width(width + 4);
+		}
 
 		for (var j = 0; j < numLinks; j++) {
 			var tag = linksOnPage[linkUrl][j][0].piwikTagElement;
 			tag.addClass('PIS_Highlighted');
-			tag.data('piwik-highlighted', true);
+			tag[0].piwikHighlighted = true;
 		}
 
+		// Sometimes it fails to remove the notification when the hovered element is removed.
+		// To make sure we don't display more than one location at a time, we hide all before showing the new one.
+		Piwik_Overlay_Client.hideNotifications('LinkLocation');
+		
 		// we don't use .data() because jquery would remove the callback when the link tag is removed
 		linkTag[0].piwikHideNotification = Piwik_Overlay_Client.notification(
-			Piwik_Overlay_Translations.get('link') + ': ' + linkUrl);
+			Piwik_Overlay_Translations.get('link') + ': ' + linkUrl, 'LinkLocation');
 	}
 
 	/** Remove highlight from link */
@@ -422,12 +442,13 @@ var Piwik_Overlay_FollowingPages = (function() {
 			var tag = linksOnPage[linkUrl][j][0].piwikTagElement;
 			if (tag) {
 				tag.removeClass('PIS_Highlighted');
-				tag.data('piwik-highlighted', false);
+				tag[0].piwikHighlighted = false;
 			}
 		}
 
-		if (typeof linkTag[0].piwikHideNotification == 'function') {
-			linkTag[0].piwikHideNotification.apply();
+		if ((typeof linkTag[0].piwikHideNotification) == 'function') {
+			linkTag[0].piwikHideNotification();
+			linkTag[0].piwikHideNotification = null;
 		}
 	}
 
@@ -464,10 +485,11 @@ var Piwik_Overlay_FollowingPages = (function() {
 					for (var j = 0; j < linksOnPage[url].length; j++) {
 						var linkTag = linksOnPage[url][j];
 						var tagElement = linkTag[0].piwikTagElement;
-						delete linkTag[0].piwikTagElement;
 						if (tagElement) {
 							tagElement.remove();
 						}
+						linkTag[0].piwikTagElement = null;
+						
 						$(linkTag).unbind('mouseenter').unbind('mouseleave');
 					}
 				}
diff --git a/plugins/Overlay/templates/index.css b/plugins/Overlay/templates/index.css
index 42efdcf0dd52075f35375e2c1cc728c415222cb3..154546eeebaf1e25feb0609986aad88df0f8d723 100644
--- a/plugins/Overlay/templates/index.css
+++ b/plugins/Overlay/templates/index.css
@@ -2,6 +2,8 @@
 html {
 	width: 100%;
 	height: 100%;
+	/** hide scroll bar in ie7 */
+	*overflow: auto;
 }
 
 body {
diff --git a/plugins/Overlay/templates/index.js b/plugins/Overlay/templates/index.js
index 807eb6b5654e196506f0f22c4dab5175954b1965..45ec759d427c4a2266e8721df620f1830cb5771d 100644
--- a/plugins/Overlay/templates/index.js
+++ b/plugins/Overlay/templates/index.js
@@ -58,7 +58,7 @@ var Piwik_Overlay = (function() {
 			});
 
 			$sidebar.empty().append($response).show();
-			
+
 			if ($sidebar.find('.Overlay_NoData').size() == 0) {
 				$rowEvolutionLink.show();
 				$transitionsLink.show()
@@ -109,7 +109,7 @@ var Piwik_Overlay = (function() {
 	function hashChangeCallback(urlHash) {
 		var location = broadcast.getParamValue('l', urlHash);
 		location = Overlay_Helper.decodeFrameUrl(location);
-		
+
 		if (!updateComesFromInsideFrame) {
 			var iframeUrl = iframeSrcBase;
 			if (location) {
@@ -122,12 +122,6 @@ var Piwik_Overlay = (function() {
 		}
 
 		updateComesFromInsideFrame = false;
-		
-		// handle window resize
-		// this needs to be bound here because broadcast unbinds it after every hash change
-		$(window).resize(function() {
-			adjustDimensions();
-		});
 	}
 
 	return {
@@ -160,15 +154,27 @@ var Piwik_Overlay = (function() {
 				adjustDimensions();
 			}, 50);
 
+			// handle window resize
+			// we manipulate broadcast.pageload because it unbinds all resize events on window
+			var originalPageload = broadcast.pageload;
+			broadcast.pageload = function(hash) {
+				originalPageload(hash);
+				$(window).resize(function() {
+					adjustDimensions();
+				});
+			};
+			$(window).resize(function() {
+				adjustDimensions();
+			});
+
 			// handle hash change
 			broadcast.loadAjaxContent = hashChangeCallback;
 			broadcast.init();
-			
+
 			if (window.location.href.split('#').length == 1) {
 				// if there's no hash, broadcast won't trigger the callback - we have to do it here
 				hashChangeCallback('');
 			}
-			
 
 			// handle date selection
 			var $select = $('select#Overlay_DateRangeSelect').change(function() {
@@ -224,7 +230,7 @@ var Piwik_Overlay = (function() {
 			if (locationParts.length > 1) {
 				currentLocation = broadcast.getParamValue('l', locationParts[1]);
 			}
-			
+
 			var newLocation = Overlay_Helper.encodeFrameUrl(currentUrl);
 
 			if (newLocation != currentLocation) {
diff --git a/plugins/Overlay/templates/index.tpl b/plugins/Overlay/templates/index.tpl
index 2499b1662eeda26de99ba326eb3cf26995739c1c..66bddbe1db02a0251825b46b8230d65d398c45c2 100644
--- a/plugins/Overlay/templates/index.tpl
+++ b/plugins/Overlay/templates/index.tpl
@@ -43,7 +43,7 @@
 
 
 <div id="Overlay_Main">
-	<iframe id="Overlay_Iframe" src=""></iframe>
+	<iframe id="Overlay_Iframe" src="" frameborder="0"></iframe>
 </div>
 
 
diff --git a/plugins/Overlay/templates/index_noframe.tpl b/plugins/Overlay/templates/index_noframe.tpl
index ec2008c5d317bd27096514fded4f9301440a3912..0897f7cd9cf78e2e4f30635001632cd2bf965677 100644
--- a/plugins/Overlay/templates/index_noframe.tpl
+++ b/plugins/Overlay/templates/index_noframe.tpl
@@ -8,9 +8,11 @@
 		
 		{literal}
 		
-		var loactionParts = window.location.href.split('#');
-		if (loactionParts.length > 1) {
-			newLocation += '#' + loactionParts[1];
+		var locationParts = window.location.href.split('#');
+		if (locationParts.length > 1) {
+			var url = broadcast.getParamValue('l', locationParts[1]);
+			url = Overlay_Helper.decodeFrameUrl(url);
+			newLocation += '#' + url;
         }
 		
 		window.location.href = newLocation;