diff --git a/framework/ActiveSync/lib/Horde/ActiveSync/Request/Ping.php b/framework/ActiveSync/lib/Horde/ActiveSync/Request/Ping.php index e3ca9a033b8..8459be5af89 100644 --- a/framework/ActiveSync/lib/Horde/ActiveSync/Request/Ping.php +++ b/framework/ActiveSync/lib/Horde/ActiveSync/Request/Ping.php @@ -178,12 +178,13 @@ protected function _handle() $this->_decoder->getElementEndTag(); try { - // Explicitly asked for a collection, make sure we have a key. + // Explicitly asked for a collection, make sure we have + // a key, but silently ignore the collection if we don't + // Otherwise, this can set up a PING loop in broken + // iOS clients that request collections in PING before + // they issue an initial SYNC for them. $collections->addCollection($collection, true); } catch (Horde_ActiveSync_Exception_StateGone $e) { - $this->_statusCode = self::STATUS_FOLDERSYNCREQD; - $this->_handleGlobalError(); - return true; } }