Dear Charles, I think I've found a bug in yaffsfs.c in function yaffsfs_do_write(int fd, const void *vbuf, unsigned int nbyte, int isPwrite, int offset) In this function there is the following section - if(!h || !obj){ // bad handle yaffsfs_SetError(-EBADF); totalWritten = -1; } else if( h && obj && (h->readOnly || obj->myDev->readOnly)){ yaffsfs_SetError(-EINVAL); totalWritten=-1; } else if( h && obj){ if(isPwrite) startPos = offset; else if(h->append) startPos = yaffs_GetObjectFileLength(obj); else startPos = h->position; The bolded "else" is missing and should be added. Otherwise, if you call this function with "isPwrite = 1", startPos will not get your desired "offset", because it will be overwritten. Thanks ------------------------------------------------------------------------- Amir Comforti Zoran Microelectronics Ltd Phone: +972 4 8546310 Email: amir.comforti@zoran.com Web: www.zoran.com -------------------------------------------------------------------------