diff --git a/mozilla/toolkit/content/tests/chrome/Makefile.in b/mozilla/toolkit/content/tests/chrome/Makefile.in
index e0a9b496e6a..c3df3388a48 100644
--- a/mozilla/toolkit/content/tests/chrome/Makefile.in
+++ b/mozilla/toolkit/content/tests/chrome/Makefile.in
@@ -62,6 +62,8 @@ _TEST_FILES = bug288254_window.xul \
test_popup_anchor.xul \
window_popup_anchor.xul \
frame_popup_anchor.xul \
+ test_preferences.xul \
+ window_preferences.xul \
$(NULL)
ifeq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
diff --git a/mozilla/toolkit/content/tests/chrome/test_preferences.xul b/mozilla/toolkit/content/tests/chrome/test_preferences.xul
new file mode 100644
index 00000000000..02793cd4533
--- /dev/null
+++ b/mozilla/toolkit/content/tests/chrome/test_preferences.xul
@@ -0,0 +1,471 @@
+
+
+
+
+
+ Preferences Window Tests
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mozilla/toolkit/content/tests/chrome/window_preferences.xul b/mozilla/toolkit/content/tests/chrome/window_preferences.xul
new file mode 100644
index 00000000000..25ee4b5b29f
--- /dev/null
+++ b/mozilla/toolkit/content/tests/chrome/window_preferences.xul
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/mozilla/toolkit/content/widgets/preferences.xml b/mozilla/toolkit/content/widgets/preferences.xml
index f97b39cc1d3..5d814ec8590 100644
--- a/mozilla/toolkit/content/widgets/preferences.xml
+++ b/mozilla/toolkit/content/widgets/preferences.xml
@@ -237,7 +237,8 @@
- this.preferences.rootBranch.clearUserPref(this.name);
+ // defer reset until preference update
+ this.value = undefined;
@@ -314,9 +315,16 @@