diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index f89b72e..83b3a68 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -66,7 +66,7 @@
     private boolean mPreferenceHighlighted = false;
     private Drawable mHighlightDrawable;
 
-    private Object mRegisterLock = new Object();
+    private ListAdapter mCurrentRootAdapter;
     private boolean mIsDataSetObserverRegistered = false;
     private DataSetObserver mDataSetObserver = new DataSetObserver() {
         @Override
@@ -147,6 +147,11 @@
     }
 
     @Override
+    protected void onUnbindPreferences() {
+        unregisterObserverIfNeeded();
+    }
+
+    @Override
     public void onStop() {
         super.onStop();
 
@@ -154,20 +159,23 @@
     }
 
     public void registerObserverIfNeeded() {
-        synchronized (mRegisterLock) {
-            if (!mIsDataSetObserverRegistered) {
-                getPreferenceScreen().getRootAdapter().registerDataSetObserver(mDataSetObserver);
-                mIsDataSetObserverRegistered = true;
+        if (!mIsDataSetObserverRegistered) {
+            if (mCurrentRootAdapter != null) {
+                mCurrentRootAdapter.unregisterDataSetObserver(mDataSetObserver);
             }
+            mCurrentRootAdapter = getPreferenceScreen().getRootAdapter();
+            mCurrentRootAdapter.registerDataSetObserver(mDataSetObserver);
+            mIsDataSetObserverRegistered = true;
         }
     }
 
     public void unregisterObserverIfNeeded() {
-        synchronized (mRegisterLock) {
-            if (mIsDataSetObserverRegistered) {
-                getPreferenceScreen().getRootAdapter().unregisterDataSetObserver(mDataSetObserver);
-                mIsDataSetObserverRegistered = false;
+        if (mIsDataSetObserverRegistered) {
+            if (mCurrentRootAdapter != null) {
+                mCurrentRootAdapter.unregisterDataSetObserver(mDataSetObserver);
+                mCurrentRootAdapter = null;
             }
+            mIsDataSetObserverRegistered = false;
         }
     }
 
