diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index e799662..82109e9 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -450,6 +450,7 @@
         LoaderManager lm = getLoaderManager();
         lm.destroyLoader(LOADER_ACCOUNTS);
         for (int id : mBookmarkAdapters.keySet()) {
+            mBookmarkAdapters.get(id).quitThread();
             lm.destroyLoader(id);
         }
         mBookmarkAdapters.clear();
diff --git a/src/com/android/browser/util/ThreadedCursorAdapter.java b/src/com/android/browser/util/ThreadedCursorAdapter.java
index f07a375..23dd307 100644
--- a/src/com/android/browser/util/ThreadedCursorAdapter.java
+++ b/src/com/android/browser/util/ThreadedCursorAdapter.java
@@ -46,6 +46,7 @@
     private int mSize;
     private boolean mHasCursor;
     private long mGeneration;
+    private HandlerThread mThread;
 
     private class LoadContainer {
         WeakReference<View> view;
@@ -89,10 +90,10 @@
 
         };
         mSize = mCursorAdapter.getCount();
-        HandlerThread thread = new HandlerThread("threaded_adapter_" + this,
+        mThread = new HandlerThread("threaded_adapter_" + this,
                 Process.THREAD_PRIORITY_BACKGROUND);
-        thread.start();
-        mLoadHandler = new Handler(thread.getLooper()) {
+        mThread.start();
+        mLoadHandler = new Handler(mThread.getLooper()) {
             @SuppressWarnings("unchecked")
             @Override
             public void handleMessage(Message msg) {
@@ -204,9 +205,17 @@
         }
     }
 
+    public void quitThread() {
+        if (mThread != null) {
+            HandlerThread thread = mThread;
+            mThread = null;
+            thread.quitSafely();
+        }
+    }
+
     public abstract View newView(Context context, ViewGroup parent);
     public abstract void bindView(View view, T object);
     public abstract T getRowObject(Cursor c, T recycleObject);
     public abstract T getLoadingObject();
     protected abstract long getItemId(Cursor c);
-}
\ No newline at end of file
+}
