diff --git a/xroot_plugins/XrdCtaArchiveFileLs.hpp b/xroot_plugins/XrdCtaArchiveFileLs.hpp
index f9c8cb113878150af21f6657fa508d01bc89436d..13e0db50ac647ac5b62feaec7ce761608fbb22a6 100644
--- a/xroot_plugins/XrdCtaArchiveFileLs.hpp
+++ b/xroot_plugins/XrdCtaArchiveFileLs.hpp
@@ -75,13 +75,12 @@ tmp_num_items = 0;
       item.mutable_af()->set_disk_file_id("World");
       item.set_copy_nb(++tmp_num_items);
 
-      Buffer *streambuf = new XrdSsiPb::StreamBuffer(dlen);
-      streambuf->serialize(item);
-      dlen = streambuf->bytesize();
+      XrdSsiPb::OStreamBuffer *streambuf = new XrdSsiPb::OStreamBuffer();
+      dlen = streambuf->serialize(item);
 
 std::cerr << "Returning buffer with " << dlen << " bytes of data." << std::endl;
 
-      return buffer;
+      return streambuf;
    }
 
 private: