I have discovered a problem in the TMemList.intIndexOf() method. If a buffer addresses are too far apart the comparison variable C can overflow resulting in a failed search. This can lead to an AV in the TDataSet.Resync() after the Delete method fails to remove a buffer from the TMemList, while freeing its memory anyway. To resolve the issue I suggest declaring C as NativeInt instead of Integer.
Thanks, logged as bugs://85898
bugs://85898 got closed with status fixed.