diff -r 8871b09be73b -r 24062c24fe38 phoneengine/phonemodel/src/cpephonemodel.cpp --- a/phoneengine/phonemodel/src/cpephonemodel.cpp Fri Feb 19 22:50:26 2010 +0200 +++ b/phoneengine/phonemodel/src/cpephonemodel.cpp Fri Mar 12 15:42:40 2010 +0200 @@ -1225,24 +1225,41 @@ TEFLOGSTRING( KTAOBJECT, "CPEPhoneModel::DelayMessageSending" ); TBool sendingDelayed( EFalse ); - - if ( MEngineMonitor::EPEMessageInitiatedEmergencyCall == aMessage ) + + switch ( aMessage ) { - iEngineInfo->SetIsSwitchToOperationOngoing( EFalse ); - if ( iCallStackCutter ) + case MEngineMonitor::EPEMessageInitiatedEmergencyCall: { - delete iCallStackCutter; - iCallStackCutter = NULL; + iEngineInfo->SetIsSwitchToOperationOngoing( EFalse ); + sendingDelayed = ETrue; + } + break; + case MEngineMonitor::EPEMessageColpNumberAvailable: + { + sendingDelayed = ETrue; } - TRAPD( err, iCallStackCutter = CIdle::NewL( CActive::EPriorityHigh ) ); - if ( !err ) - { - iCallBackMessage = aMessage; - iCallBackCallId = aCallId; - iCallStackCutter->Start( TCallBack( CallBackMessageSend , this ) ); - } - sendingDelayed = ETrue; + break; + default: + // Other messages cause no action. + break; } + + if ( sendingDelayed ) + { + if ( iCallStackCutter ) + { + delete iCallStackCutter; + iCallStackCutter = NULL; + } + TRAPD( err, iCallStackCutter = CIdle::NewL( CActive::EPriorityHigh ) ); + if ( !err ) + { + iCallBackMessage = aMessage; + iCallBackCallId = aCallId; + iCallStackCutter->Start( TCallBack( CallBackMessageSend , this ) ); + } + } + return sendingDelayed; }