diff --git a/src/com/android/settings/accounts/SyncStateCheckBoxPreference.java b/src/com/android/settings/accounts/SyncStateCheckBoxPreference.java
index b200eb6..4b9ca81 100644
--- a/src/com/android/settings/accounts/SyncStateCheckBoxPreference.java
+++ b/src/com/android/settings/accounts/SyncStateCheckBoxPreference.java
@@ -20,6 +20,7 @@
 
 import android.content.Context;
 import android.graphics.drawable.AnimationDrawable;
+import android.os.Handler;
 import android.preference.CheckBoxPreference;
 import android.util.AttributeSet;
 import android.view.View;
@@ -40,7 +41,7 @@
      * toggling whether the provider will do autosync.
      */
     private boolean mOneTimeSyncMode = false;
-    
+
     public SyncStateCheckBoxPreference(Context context, AttributeSet attrs) {
         super(context, attrs);
         setWidgetLayoutResource(R.layout.preference_widget_sync_toggle);
@@ -67,7 +68,7 @@
         boolean showError;
         boolean showPending;
         if (mIsActive) {
-            syncActiveView.post(new Runnable() {
+            new Handler(getContext().getMainLooper()).post(new Runnable() {
                 public void run() {
                     anim.start();
                 }
@@ -87,11 +88,11 @@
 
         syncFailedView.setVisibility(showError ? View.VISIBLE : View.GONE);
         syncPendingView.setVisibility((showPending && !mIsActive) ? View.VISIBLE : View.GONE);
-        
+
         View checkBox = view.findViewById(android.R.id.checkbox);
         if (mOneTimeSyncMode) {
             checkBox.setVisibility(View.GONE);
-            
+
             /*
              * Override the summary. Fill in the %1$s with the existing summary
              * (what ends up happening is the old summary is shown on the next
@@ -138,7 +139,7 @@
         mOneTimeSyncMode = oneTimeSyncMode;
         notifyChanged();
     }
-    
+
     /**
      * Gets whether the preference is in one-time sync mode.
      */
@@ -152,7 +153,7 @@
         // checkbox state
         if (!mOneTimeSyncMode) {
             super.onClick();
-        }            
+        }
     }
 
     public Account getAccount() {
