diff -r fa0adf088850 -r c76ea6caa649 mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp --- a/mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp Tue Aug 24 03:26:23 2010 -0500 +++ b/mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp Fri Sep 03 20:07:59 2010 -0500 @@ -173,10 +173,15 @@ } case EPbsGetAsyncBuffer: { + //In case of other application leaving, causing us to leave + //we could have a task that does not get removed from the top of the queue + //but the data for that task has been deleted. + //When the task runs again, there will be no data causing a panic - leave if this occurs + User::LeaveIfNull(iAsyncBuffer); aMessage.WriteL(0,iAsyncBuffer->Ptr(0)); delete iAsyncBuffer; - iAsyncBuffer = NULL; - break; + iAsyncBuffer = NULL; + break; } case EPbsInitFromCollection: {