SHWriteDataBlockList shouldn't fail writing an empty DataBlock list. It should just write the empty termination entry so it's possible to read the DataBlock list again (although it's empty). Also ensure correct alignment in the SHLWAPI_CLIST structure as it's written to the stream. - Thomas