diff --git a/Dalamud/Game/Text/SeStringHandling/Payload.cs b/Dalamud/Game/Text/SeStringHandling/Payload.cs
index 7131a88a7..3eb1cf317 100644
--- a/Dalamud/Game/Text/SeStringHandling/Payload.cs
+++ b/Dalamud/Game/Text/SeStringHandling/Payload.cs
@@ -208,7 +208,7 @@ public abstract partial class Payload
}
payload ??= new RawPayload((byte)chunkType);
- payload.DecodeImpl(reader, reader.BaseStream.Position + chunkLen - 1);
+ payload.DecodeImpl(reader, reader.BaseStream.Position + chunkLen);
// read through the rest of the packet
var readBytes = (uint)(reader.BaseStream.Position - packetStart);
diff --git a/Dalamud/Game/Text/SeStringHandling/Payloads/RawPayload.cs b/Dalamud/Game/Text/SeStringHandling/Payloads/RawPayload.cs
index a7e41cbc6..02a7c113e 100644
--- a/Dalamud/Game/Text/SeStringHandling/Payloads/RawPayload.cs
+++ b/Dalamud/Game/Text/SeStringHandling/Payloads/RawPayload.cs
@@ -95,14 +95,12 @@ public class RawPayload : Payload
///
protected override byte[] EncodeImpl()
{
- var chunkLen = this.data.Length + 1;
-
var bytes = new List()
{
START_BYTE,
this.chunkType,
- (byte)chunkLen,
};
+ bytes.AddRange(MakeInteger((uint)this.data.Length)); // chunkLen
bytes.AddRange(this.data);
bytes.Add(END_BYTE);
@@ -113,6 +111,6 @@ public class RawPayload : Payload
///
protected override void DecodeImpl(BinaryReader reader, long endOfStream)
{
- this.data = reader.ReadBytes((int)(endOfStream - reader.BaseStream.Position + 1));
+ this.data = reader.ReadBytes((int)(endOfStream - reader.BaseStream.Position));
}
}