diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js
index 47bb5e6b8112..24a19077e758 100644
--- a/browser/base/content/browser.js
+++ b/browser/base/content/browser.js
@@ -3837,9 +3837,17 @@ nsBrowserStatusHandler.prototype =
location = locationURI.spec;
} catch (exception) {}
- gURLBar.value = ""; // hack for bug 249322
- gURLBar.value = location;
- SetPageProxyState("valid");
+ if (getBrowser().forceSyncURLBarUpdate) {
+ gURLBar.value = ""; // hack for bug 249322
+ gURLBar.value = location;
+ SetPageProxyState("valid");
+ } else {
+ setTimeout(function(loc) {
+ gURLBar.value = ""; // hack for bug 249322
+ gURLBar.value = loc;
+ SetPageProxyState("valid");
+ }, 0, location);
+ }
// Setting the urlBar value in some cases causes userTypedValue to
// become set because of oninput, so reset it to its old value.
diff --git a/toolkit/content/widgets/tabbrowser.xml b/toolkit/content/widgets/tabbrowser.xml
index 579eda50c0c5..b75eb359c0ac 100644
--- a/toolkit/content/widgets/tabbrowser.xml
+++ b/toolkit/content/widgets/tabbrowser.xml
@@ -180,6 +180,9 @@
null
+
+ false
+
#ifdef XP_MACOSX
true
@@ -1698,8 +1701,6 @@