Könnte das hier nicht der Code von Length sein?
Delphi-Quellcode:
function __StringLength(.... // Rückgabewert immer Integer
begin
Result := PInteger(PByte(S) - 4)^;
end;
Setz doch einfach mal ein paar MessageBoxen einige Zeilen vor und einige nach Length. Irgendwo wird der Fehler dann sein denke ich.