Bei deiner ZEile :
Delphi-Quellcode:
S := CopyW(S, 1, Index - 1) + CopyW(S, Index + Count, Length(S));
Überprüf mal, welchen wert length(S) beim Aufruf des 2. CopyW bekommt.
eventuell ändert sich S zwischen den zwei aufrufen von CopyW, und es wird deshalb beim zweiten CopyW length(S) falsch berechnet ?