Nick,
Internally, it's performing DWORD moves (for performance). So if your data isn't a multiple of 8 bytes or 8-byte aligned, you may have problems. Obviously, you found a bug that should be fixed. A workaround is to pad your data and round up the size of the transfer.