Index: src/natools-s_expressions-atom_buffers.adb ================================================================== --- src/natools-s_expressions-atom_buffers.adb +++ src/natools-s_expressions-atom_buffers.adb @@ -58,14 +58,17 @@ end Preallocate; procedure Append (Buffer : in out Atom_Buffer; Data : in Atom) is begin - Preallocate (Buffer, Data'Length); - Buffer.Ref.Update.Data.all (Buffer.Used + 1 .. Buffer.Used + Data'Length) - := Data; - Buffer.Used := Buffer.Used + Data'Length; + if Data'Length > 0 then + Preallocate (Buffer, Data'Length); + Buffer.Ref.Update.Data.all + (Buffer.Used + 1 .. Buffer.Used + Data'Length) + := Data; + Buffer.Used := Buffer.Used + Data'Length; + end if; end Append; procedure Append (Buffer : in out Atom_Buffer; Data : in Octet) is begin