First of all, My thoughts and prayers are with you in the UK as you recover from this horrific attack on your country, this slaughter of innocent people by those sick terrorist. Just horrible.... Anyway... I wanted to let you know I found part of my problem. I did not have useecc = MTD_NANDECC_AUTOPLACE. I had to do this in my map driver: igt_sn2_mtd->oobinfo.useecc = MTD_NANDECC_AUTOPLACE; just before adding the partition. then, I was getting an infinite loop because of this in nand_prepare_oobbuf(): for (i = 0, len = 0; len < mtd->oobavail; i++) { int to = ofs + oobsel->oobfree[i][0]; int num = oobsel->oobfree[i][1]; memcpy (&this->oob_buf[to], fsbuf, num); len += num; fsbuf += num; } my mtd->oobavail was 39 and my oobsel->oobfree[0][1] was 38. but the next one (oobsel->oobfree[1][1]) was 0 making "num" zero so the loop went forever. That's pretty nasty. I change mtd->oobavail to 38 and then it was happy. Humm. However, now I am getting tons of these when I remove a file and copy another one in: page 130 in gc has no object page 131 in gc has no object page 132 in gc has no object page 133 in gc has no object page 134 in gc has no object etc.... Any ideas? Is it because I moved the stuff in the oob and now someplace else can't find it? Is this MTD_NANDECC_AUTOPLACE the right thing to set to avoid the zeroing out of the bad block markers? or is there a better way? Thanks. __________________________________ Reed Lawson IGT Firmware Engineering (775) 448-0755