infratec thank you for the quick response... and hopefully continued support

I'm having trouble applying your code to my script. I think because I'm in a Callback the returned memory size is not being updated.
See the following Debug report:
YEAH!!!
6553665536
27837Image was returned during the first pass, but not during the other two. If the image is returned after only the first pass - its pixelated.
Same result is returned using: CatchImage(0, P1, P2) without your AppendMemory procedure.
Code:
Procedure.i AppendMemory(*Src, *Dest, Size.i)
Protected *New, OldSize.i
If *Dest
OldSize = MemorySize(*Dest)
EndIf
*New = ReAllocateMemory(*Dest, OldSize + Size)
If *New
CopyMemory(*Src, *New + OldSize, Size)
EndIf
ProcedureReturn *New
EndProcedure
Procedure RARCallback(msg, UserData, P1, P2)
#UCM_PROCESSDATA = 1
#RAR_CONTINUE = 1
Select msg
Case #UCM_PROCESSDATA
*New = AppendMemory(P1, *Buffer, P2)
*Buffer = AllocateMemory(P2)
CatchImage(0, *New, MemorySize(*New))
If IsImage(0)
Debug "YEAH!!!"
EndIf
Debug MemorySize(*New)
ProcedureReturn #RAR_CONTINUE
EndSelect
EndProcedure
Thank you again,