diff --git a/src/com/android/contacts/ContactLoader.java b/src/com/android/contacts/ContactLoader.java
index 80519a5..471183e 100644
--- a/src/com/android/contacts/ContactLoader.java
+++ b/src/com/android/contacts/ContactLoader.java
@@ -961,7 +961,7 @@
     }
 
     @Override
-    public void startLoading() {
+    protected void onStartLoading() {
         if (mContact != null) {
             deliverResult(mContact);
         } else {
@@ -970,18 +970,18 @@
     }
 
     @Override
-    public void forceLoad() {
+    protected void onForceLoad() {
         final LoadContactTask task = new LoadContactTask();
         task.execute((Void[])null);
     }
 
     @Override
-    public void stopLoading() {
+    protected void onStopLoading() {
         unregisterObserver();
         mContact = null;
     }
 
-    public void reset() {
+    protected void onReset() {
         unregisterObserver();
         mContact = null;
         mDestroyed = true;
diff --git a/src/com/android/contacts/list/ContactListFilterLoader.java b/src/com/android/contacts/list/ContactListFilterLoader.java
index e2fdfda..ebc23d6 100644
--- a/src/com/android/contacts/list/ContactListFilterLoader.java
+++ b/src/com/android/contacts/list/ContactListFilterLoader.java
@@ -135,7 +135,7 @@
     }
 
     @Override
-    public void startLoading() {
+    protected void onStartLoading() {
         if (mObserver == null) {
             mObserver = new ForceLoadContentObserver();
             getContext().getContentResolver().registerContentObserver(
@@ -152,7 +152,7 @@
     }
 
     @Override
-    public void stopLoading() {
+    protected void onStopLoading() {
         if (mObserver != null) {
             getContext().getContentResolver().unregisterContentObserver(mObserver);
             mObserver = null;
@@ -168,7 +168,7 @@
     }
 
     @Override
-    public void reset() {
+    protected void onReset() {
         stopLoading();
     }
 }
diff --git a/src/com/android/contacts/list/DirectoryListLoader.java b/src/com/android/contacts/list/DirectoryListLoader.java
index b98762a..0bb250a 100644
--- a/src/com/android/contacts/list/DirectoryListLoader.java
+++ b/src/com/android/contacts/list/DirectoryListLoader.java
@@ -98,14 +98,14 @@
     }
 
     @Override
-    public void startLoading() {
+    protected void onStartLoading() {
         getContext().getContentResolver().
                 registerContentObserver(Directory.CONTENT_URI, false, mObserver);
         forceLoad();
     }
 
     @Override
-    public void stopLoading() {
+    protected void onStopLoading() {
         getContext().getContentResolver().unregisterContentObserver(mObserver);
     }
 
@@ -190,7 +190,7 @@
     }
 
     @Override
-    public void reset() {
+    protected void onReset() {
         stopLoading();
     }
 }
