diff --git a/src/com/android/browser/BrowserPreferencesPage.java b/src/com/android/browser/BrowserPreferencesPage.java
index 2524eb8..4536b2c 100644
--- a/src/com/android/browser/BrowserPreferencesPage.java
+++ b/src/com/android/browser/BrowserPreferencesPage.java
@@ -18,6 +18,7 @@
 
 import java.util.List;
 import java.util.Vector;
+import java.util.Set;
 
 import android.content.Intent;
 import android.net.Uri;
@@ -93,7 +94,7 @@
         PreferenceScreen manageDatabases = (PreferenceScreen)
             findPreference(BrowserSettings.PREF_WEBSITE_SETTINGS);
         manageDatabases.setEnabled(false);
-        Vector origins = WebStorage.getInstance().getOrigins();
+        Set origins = WebStorage.getInstance().getOrigins();
         if ((origins != null) && (origins.size() > 0)) {
             manageDatabases.setEnabled(true);
         }
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 479c0a3..2301289 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -510,7 +510,7 @@
     }
 
     /*package*/ void clearDatabases(Context context) {
-        WebStorage.getInstance().deleteAllDatabases();
+        WebStorage.getInstance().deleteAllData();
         // Remove all listed databases from the preferences
         PreferenceActivity activity = (PreferenceActivity) context;
         PreferenceScreen screen = (PreferenceScreen)
diff --git a/src/com/android/browser/WebsiteSettingsActivity.java b/src/com/android/browser/WebsiteSettingsActivity.java
index 7fea766..c9042cd 100644
--- a/src/com/android/browser/WebsiteSettingsActivity.java
+++ b/src/com/android/browser/WebsiteSettingsActivity.java
@@ -108,10 +108,11 @@
 
             // Get the list of origins we want to display
             HashMap<String, Site> uris = new HashMap<String, Site>();
-            Vector origins = WebStorage.getInstance().getOrigins();
+            Set origins = WebStorage.getInstance().getOrigins();
             if (origins != null) {
-                for (int i = 0;  i < origins.size(); i++) {
-                    String origin = (String) origins.get(i);
+                Iterator<String> iter = origins.iterator();
+                while (iter.hasNext()) {
+                    String origin = iter.next();
                     Site site = new Site(origin, origin, null);
                     uris.put(Uri.parse(origin).getHost(), site);
                 }
