OK, I've got 3 options here, and I really need to move on from this. 1) Enable CONFIG_MTD_PHYSMAP and live with the change in mtd blocks. Change the linuxargs bootldr param to point to the new root partition (in NAND) and get on with life. 2) Apply the ridiculous ugly, WRONG WAY TO DO THIS, patch (see attached) which preserves the partition order by virtue of calling the platform specific 'balloon3_nor_init()' procedure (defined in arch/arm/pxa-270/balloon3.c) from the NAND driver code procedure 'balloon3_nand_init()' (defined in drivers/mtd/nand/balloon3.c. 3) Arrange somehow for the NAND partition to be probed, recognized, and loaded from within balloon3_init(). I'm having trouble figuring out how to make this work. Simply calling 'balloon3_nand_init()' (the one defined in drivers/mtd/nand/balloon.c, not the confusingly identically named one from within baloon3.c) doesn't work, probably because other stuff has not yet been initialized. This is the one that I need help on... if anybody has any suggestions on how to safely call a vanilla module init function from within the low level balloon3.c 'balloon3_init()' function, I'd love the tip. If anybody has a better/different suggestion, I'd be open to trying that as well. Thanks folks! --wpd