Index: src/natools-chunked_strings.adb ================================================================== --- src/natools-chunked_strings.adb +++ src/natools-chunked_strings.adb @@ -1452,11 +1452,15 @@ case (Going) is when Ada.Strings.Forward => loop Result := Ada.Strings.Fixed.Index - (Source.Data (Chunk).all, Set, Offset, Test, Going); + (Source.Data (Chunk).all + (1 .. Positive'Min (Source.Size + - (Chunk - 1) * Source.Chunk_Size, + Source.Chunk_Size)), + Set, Offset, Test, Going); if Result /= 0 then return (Chunk - 1) * Source.Chunk_Size + Result; end if; if Chunk = Source.Data'Last then return 0; @@ -1465,11 +1469,15 @@ Offset := 1; end loop; when Ada.Strings.Backward => loop Result := Ada.Strings.Fixed.Index - (Source.Data (Chunk).all, Set, Offset, Test, Going); + (Source.Data (Chunk).all + (1 .. Positive'Min (Source.Size + - (Chunk - 1) * Source.Chunk_Size, + Source.Chunk_Size)), + Set, Offset, Test, Going); if Result /= 0 then return (Chunk - 1) * Source.Chunk_Size + Result; end if; if Chunk = Source.Data'First then return 0;