diff --git a/src/libloomw/data/index.cpp b/src/libloomw/data/index.cpp
index a2cd58384380a4ad857af10674cef45f5dc3dd20..1007e61f8030389ca651d48eaca2d2b6bca1ea00 100644
--- a/src/libloomw/data/index.cpp
+++ b/src/libloomw/data/index.cpp
@@ -83,7 +83,7 @@ DataPtr Index::get_slice(size_t from, size_t to) const
 
 size_t Index::serialize(Worker &worker, loom::base::SendBuffer &buffer, const DataPtr &data_ptr) const
 {
-    size_t size = length * sizeof(size_t);
+    size_t size = (length + 1) * sizeof(size_t);
     buffer.add(std::make_unique<base::SizeBufferItem>(size + sizeof(Id)));
     buffer.add(std::make_unique<base::IdBufferItem>(data->get_type_id(worker)));
     buffer.add(std::make_unique<DataBufferItem>(data_ptr, reinterpret_cast<char*>(indices.get()), size));