diff --git a/src/com/android/browser/AccountsChangedReceiver.java b/src/com/android/browser/AccountsChangedReceiver.java
index cad176f..ba1b3cc 100644
--- a/src/com/android/browser/AccountsChangedReceiver.java
+++ b/src/com/android/browser/AccountsChangedReceiver.java
@@ -46,7 +46,7 @@
     static class DeleteRemovedAccounts extends Thread {
         Context mContext;
         public DeleteRemovedAccounts(Context context) {
-            mContext = context;
+            mContext = context.getApplicationContext();
         }
 
         @Override
diff --git a/src/com/android/browser/AddBookmarkPage.java b/src/com/android/browser/AddBookmarkPage.java
index 45b1f8b..2ac6fe6 100644
--- a/src/com/android/browser/AddBookmarkPage.java
+++ b/src/com/android/browser/AddBookmarkPage.java
@@ -742,7 +742,7 @@
         private Message mMessage;
         private Context mContext;
         public SaveBookmarkRunnable(Context ctx, Message msg) {
-            mContext = ctx;
+            mContext = ctx.getApplicationContext();
             mMessage = msg;
         }
         public void run() {
@@ -776,7 +776,7 @@
         Long mId;
 
         public UpdateBookmarkTask(Context context, long id) {
-            mContext = context;
+            mContext = context.getApplicationContext();
             mId = id;
         }
 
@@ -1062,7 +1062,7 @@
 
         public EditBookmarkInfoLoader(Context context, Bundle bundle) {
             super(context);
-            mContext = context;
+            mContext = context.getApplicationContext();
             mMap = bundle;
         }
 
diff --git a/src/com/android/browser/AutofillHandler.java b/src/com/android/browser/AutofillHandler.java
index b6b237d..c4b14d7 100644
--- a/src/com/android/browser/AutofillHandler.java
+++ b/src/com/android/browser/AutofillHandler.java
@@ -42,7 +42,7 @@
     private Context mContext;
 
     public AutofillHandler(Context context) {
-        mContext = context;
+        mContext = context.getApplicationContext();
     }
 
     /**
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 241eb1d..0c76a70 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -584,7 +584,7 @@
         BookmarkItem mHeader;
 
         public LookupBookmarkCount(Context context, BookmarkItem header) {
-            mContext = context;
+            mContext = context.getApplicationContext();
             mHeader = header;
         }
 
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index cb86c42..35393ac 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -122,7 +122,7 @@
     }
 
     private BrowserSettings(Context context) {
-        mContext = context;
+        mContext = context.getApplicationContext();
         mPrefs = PreferenceManager.getDefaultSharedPreferences(mContext);
         mAutofillHandler = new AutofillHandler(mContext);
         mManagedSettings = new LinkedList<WeakReference<WebSettings>>();
diff --git a/src/com/android/browser/DownloadTouchIcon.java b/src/com/android/browser/DownloadTouchIcon.java
index 64a7316..ba299b6 100644
--- a/src/com/android/browser/DownloadTouchIcon.java
+++ b/src/com/android/browser/DownloadTouchIcon.java
@@ -60,7 +60,7 @@
      */
     public DownloadTouchIcon(Tab tab, Context ctx, ContentResolver cr, WebView view) {
         mTab = tab;
-        mContext = ctx;
+        mContext = ctx.getApplicationContext();
         mContentResolver = cr;
         // Store these in case they change.
         mOriginalUrl = view.getOriginalUrl();
@@ -77,7 +77,7 @@
      */
     public DownloadTouchIcon(Context ctx, ContentResolver cr, String url) {
         mTab = null;
-        mContext = ctx;
+        mContext = ctx.getApplicationContext();
         mContentResolver = cr;
         mOriginalUrl = null;
         mUrl = url;
@@ -91,7 +91,7 @@
      */
     public DownloadTouchIcon(Context context, Message msg, String userAgent) {
         mMessage = msg;
-        mContext = context;
+        mContext = context.getApplicationContext();
         mContentResolver = null;
         mOriginalUrl = null;
         mUrl = null;
diff --git a/src/com/android/browser/InstantSearchEngine.java b/src/com/android/browser/InstantSearchEngine.java
index 4dd83fa..7176c0a 100644
--- a/src/com/android/browser/InstantSearchEngine.java
+++ b/src/com/android/browser/InstantSearchEngine.java
@@ -52,7 +52,7 @@
     private final SearchEngine mWrapped;
 
     public InstantSearchEngine(Context context, SearchEngine wrapped) {
-        mContext = context;
+        mContext = context.getApplicationContext();
         mWrapped = wrapped;
     }
 
diff --git a/src/com/android/browser/KeyChainLookup.java b/src/com/android/browser/KeyChainLookup.java
index 52be25a..4d5f694 100644
--- a/src/com/android/browser/KeyChainLookup.java
+++ b/src/com/android/browser/KeyChainLookup.java
@@ -29,7 +29,7 @@
     private final ClientCertRequestHandler mHandler;
     private final String mAlias;
     KeyChainLookup(Context context, ClientCertRequestHandler handler, String alias) {
-        mContext = context;
+        mContext = context.getApplicationContext();
         mHandler = handler;
         mAlias = alias;
     }
diff --git a/src/com/android/browser/PreloadController.java b/src/com/android/browser/PreloadController.java
index 08e223f..dec22ff 100644
--- a/src/com/android/browser/PreloadController.java
+++ b/src/com/android/browser/PreloadController.java
@@ -41,7 +41,7 @@
     private Context mContext;
 
     public PreloadController(Context ctx) {
-        mContext = ctx;
+        mContext = ctx.getApplicationContext();
 
     }
 
diff --git a/src/com/android/browser/Preloader.java b/src/com/android/browser/Preloader.java
index cc71f34..37cbc0e 100644
--- a/src/com/android/browser/Preloader.java
+++ b/src/com/android/browser/Preloader.java
@@ -49,7 +49,7 @@
     }
 
     private Preloader(Context context) {
-        mContext = context;
+        mContext = context.getApplicationContext();
         mHandler = new Handler(Looper.getMainLooper());
         mSession = null;
         mFactory = new BrowserWebViewFactory(context);
diff --git a/src/com/android/browser/SystemAllowGeolocationOrigins.java b/src/com/android/browser/SystemAllowGeolocationOrigins.java
index a01541f..e0759ad 100644
--- a/src/com/android/browser/SystemAllowGeolocationOrigins.java
+++ b/src/com/android/browser/SystemAllowGeolocationOrigins.java
@@ -48,7 +48,7 @@
     private final SettingObserver mSettingObserver;
 
     public SystemAllowGeolocationOrigins(Context context) {
-        mContext = context;
+        mContext = context.getApplicationContext();
         mSettingObserver = new SettingObserver();
     }
 
diff --git a/src/com/android/browser/WebStorageSizeManager.java b/src/com/android/browser/WebStorageSizeManager.java
index bd7f8e6..109a02b 100644
--- a/src/com/android/browser/WebStorageSizeManager.java
+++ b/src/com/android/browser/WebStorageSizeManager.java
@@ -189,7 +189,7 @@
      */
     public WebStorageSizeManager(Context ctx, DiskInfo diskInfo,
             AppCacheInfo appCacheInfo) {
-        mContext = ctx;
+        mContext = ctx.getApplicationContext();
         mDiskInfo = diskInfo;
         mGlobalLimit = getGlobalLimit();
         // The initial max size of the app cache is either 25% of the global
diff --git a/src/com/android/browser/homepages/RequestHandler.java b/src/com/android/browser/homepages/RequestHandler.java
index a53fb52..248bf53 100644
--- a/src/com/android/browser/homepages/RequestHandler.java
+++ b/src/com/android/browser/homepages/RequestHandler.java
@@ -51,7 +51,7 @@
 
     public RequestHandler(Context context, Uri uri, OutputStream out) {
         mUri = uri;
-        mContext = context;
+        mContext = context.getApplicationContext();
         mOutput = out;
     }
 
diff --git a/src/com/android/browser/preferences/WebsiteSettingsFragment.java b/src/com/android/browser/preferences/WebsiteSettingsFragment.java
index 844a597..a2ccca1 100644
--- a/src/com/android/browser/preferences/WebsiteSettingsFragment.java
+++ b/src/com/android/browser/preferences/WebsiteSettingsFragment.java
@@ -296,7 +296,7 @@
             private Map<String, Site> mSites;
 
             public UpdateFromBookmarksDbTask(Context ctx, Map<String, Site> sites) {
-                mContext = ctx;
+                mContext = ctx.getApplicationContext();
                 mSites = sites;
             }
 
diff --git a/src/com/android/browser/provider/BrowserProvider.java b/src/com/android/browser/provider/BrowserProvider.java
index b55b84a..fabf57e 100644
--- a/src/com/android/browser/provider/BrowserProvider.java
+++ b/src/com/android/browser/provider/BrowserProvider.java
@@ -251,7 +251,7 @@
 
         public DatabaseHelper(Context context) {
             super(context, sDatabaseName, null, DATABASE_VERSION);
-            mContext = context;
+            mContext = context.getApplicationContext();
         }
 
         @Override
diff --git a/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java b/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java
index bd3e289..7077885 100644
--- a/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java
+++ b/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java
@@ -166,7 +166,7 @@
         private SharedPreferences mPreferences = null;
 
         public BookmarkFactory(Context context, int widgetId) {
-            mContext = context;
+            mContext = context.getApplicationContext();
             mWidgetId = widgetId;
         }
 
