diff -r fbb813aef148 -r 7e4e4bcc75b6 email/imap4mtm/imapsession/src/cimapsession.cpp --- a/email/imap4mtm/imapsession/src/cimapsession.cpp Tue May 11 16:10:04 2010 +0300 +++ b/email/imap4mtm/imapsession/src/cimapsession.cpp Tue May 25 12:38:02 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)