diff --git a/src/com/android/exchange/service/EmailSyncAdapterService.java b/src/com/android/exchange/service/EmailSyncAdapterService.java
index 34cb344..a0c49fc 100644
--- a/src/com/android/exchange/service/EmailSyncAdapterService.java
+++ b/src/com/android/exchange/service/EmailSyncAdapterService.java
@@ -631,12 +631,17 @@
             final int mailboxType = extras.getInt(Mailbox.SYNC_EXTRA_MAILBOX_TYPE,
                     Mailbox.TYPE_NONE);
 
-            // A "full sync" means no specific mailbox or type filter was requested.
-            final boolean isFullSync = (mailboxIds == null && mailboxType == Mailbox.TYPE_NONE);
+            // Push only means this sync request should only refresh the ping (either because
+            // settings changed, or we need to restart it for some reason).
+            final boolean pushOnly = Mailbox.isPushOnlyExtras(extras);
+            // Account only means just do a FolderSync.
+            final boolean accountOnly = Mailbox.isAccountOnlyExtras(extras);
+
+            // A "full sync" means that we didn't request a more specific type of sync.
+            final boolean isFullSync = (!pushOnly && !accountOnly && mailboxIds == null &&
+                    mailboxType == Mailbox.TYPE_NONE);
 
             // A FolderSync is necessary for full sync, initial sync, and account only sync.
-            final boolean accountOnly = Mailbox.isAccountOnlyExtras(extras);
-            final boolean pushOnly = Mailbox.isPushOnlyExtras(extras);
             final boolean isFolderSync = (isFullSync || isInitialSync || accountOnly);
 
             // If we're just twiddling the push, we do the lightweight thing and bail early.
@@ -675,7 +680,7 @@
                     syncMailbox(context, cr, acct, account, mailboxId, extras, syncResult, null,
                             true);
                 }
-            } else if (!accountOnly) {
+            } else if (!accountOnly && !pushOnly) {
                 // We have to sync multiple folders.
                 final Cursor c;
                 if (isFullSync) {
