Merge change If12d0e7c into eclair

* changes:
  Go to combined inbox on notify for 2+ accounts (#2147265) DO NOT MERGE
diff --git a/src/com/android/exchange/EasSyncService.java b/src/com/android/exchange/EasSyncService.java
index 77f3260..0f2a345 100644
--- a/src/com/android/exchange/EasSyncService.java
+++ b/src/com/android/exchange/EasSyncService.java
@@ -208,6 +208,12 @@
             userLog("Validation (OPTIONS) response: " + code);
             if (code == HttpStatus.SC_OK) {
                 // No exception means successful validation
+                Header commands = resp.getFirstHeader("MS-ASProtocolCommands");
+                Header versions = resp.getFirstHeader("ms-asprotocolversions");
+                if (commands == null || versions == null) {
+                    userLog("OPTIONS response without commands or versions; reporting I/O error");
+                    throw new MessagingException(MessagingException.IOERROR);
+                }
                 userLog("Validation successful");
                 return;
             }
diff --git a/src/com/android/exchange/adapter/AbstractSyncParser.java b/src/com/android/exchange/adapter/AbstractSyncParser.java
index c913af4..4c73fd8 100644
--- a/src/com/android/exchange/adapter/AbstractSyncParser.java
+++ b/src/com/android/exchange/adapter/AbstractSyncParser.java
@@ -140,7 +140,10 @@
                     mAdapter.setSyncKey(newKey, true);
                     cv.put(MailboxColumns.SYNC_KEY, newKey);
                     mailboxUpdated = true;
-                }
+                } else if (moreAvailable) {
+                    userLog("!! SyncKey hasn't changed, setting moreAvailable = false");
+                    moreAvailable = false;
+                } 
                 // If we were pushing (i.e. auto-start), now we'll become ping-triggered
                 if (mMailbox.mSyncInterval == Mailbox.CHECK_INTERVAL_PUSH) {
                     mMailbox.mSyncInterval = Mailbox.CHECK_INTERVAL_PING;