}
 
 static void yaffs_GetTagsFromSpare(yaffs_Device * dev, yaffs_Spare * sparePtr,
-                                  yaffs_Tags * tagsPtr)
+                                  yaffs_TagsUnion *tu)
 {
-       yaffs_TagsUnion *tu = (yaffs_TagsUnion *) tagsPtr;
        int result;
 
        tu->asBytes[0] = sparePtr->tagByte0;
        tu->asBytes[6] = sparePtr->tagByte6;
        tu->asBytes[7] = sparePtr->tagByte7;
 
-       result = yaffs_CheckECCOnTags(tagsPtr);
+       result = yaffs_CheckECCOnTags(&tu->asTags);
        if (result > 0) {
                dev->tagsEccFixed++;
        } else if (result < 0) {
 {
 
        yaffs_Spare spare;
-       yaffs_Tags tags;
+       yaffs_TagsUnion tags;
        yaffs_ECCResult eccResult;
 
        static yaffs_Spare spareFF;
                        if (eTags->chunkUsed) {
                                yaffs_GetTagsFromSpare(dev, &spare, &tags);
 
-                               eTags->objectId = tags.objectId;
-                               eTags->chunkId = tags.chunkId;
-                               eTags->byteCount = tags.byteCount;
-                               eTags->serialNumber = tags.serialNumber;
+                               eTags->objectId = tags.asTags.objectId;
+                               eTags->chunkId = tags.asTags.chunkId;
+                               eTags->byteCount = tags.asTags.byteCount;
+                               eTags->serialNumber = tags.asTags.serialNumber;
                        }
                }