diff --git a/core.js b/core.js
index <HASH>..<HASH> 100644
--- a/core.js
+++ b/core.js
@@ -197,7 +197,7 @@ class Location extends EventEmitter {
   }
   // triggers navigation
   get href() { return this._url.href || ''; }
-  set href(href) { this._url = new url.URL(href, this._url.href); this.update(); }
+  set href(href) { this._url = new url.URL(href, _getBaseUrl(this._url.href)); this.update(); }
   get protocol() { return this._url.protocol || ''; }
   set protocol(protocol) { this._url.protocol = protocol; this.update(); }
   get host() { return this._url.host || ''; }
Make Location href setting respect the base url