diff -r 94cccd85bd25 -r 1367103c24e2 email/imap4mtm/imapsession/src/cimapsession.cpp --- a/email/imap4mtm/imapsession/src/cimapsession.cpp Wed Jun 09 09:37:26 2010 +0300 +++ b/email/imap4mtm/imapsession/src/cimapsession.cpp Mon Jun 21 15:36:19 2010 +0300 @@ -1412,14 +1412,21 @@ if (err != KErrNone) { - // As well as completing, destroy the command to help free up resources. - CompleteAndDestroyCommand(err, ETrue); + if(err == KErrImapCorrupt) + { + continueReadingData = ETrue; + } + else + { + // As well as completing, destroy the command to help free up resources. + CompleteAndDestroyCommand(err, ETrue); - // Don't allow the session to be called again. - SetSessionState(ESessionUnrecoverable); - - return; - } + // Don't allow the session to be called again. + SetSessionState(ESessionUnrecoverable); + + return; + } + }// end of if (err != KErrNone) // If a literal block is expected next, then find out how big it is expected to be. switch (commandParseState)