// TODO DOC
        public int Write(Stream s, TagData tag)
        {
            int     result;
            TagData dataToWrite = tagData;

            dataToWrite.IntegrateValues(tag); // Write existing information + new tag information
            dataToWrite.Cleanup();

            // Write new tag to a MemoryStream
            BinaryWriter msw = new BinaryWriter(s, Encoding.UTF8);

            result = write(dataToWrite, msw, DEFAULT_ZONE_NAME);

            if (result > -1)
            {
                tagData = dataToWrite;              // TODO - Isn't that a bit too soon ?
            }
            return(result);
        }