My problem seems very similar to the one discussed here: http://forums.macrumors.com/showthread.php?t=528280 I've already tried everything suggested in that thread, and none of it helped. As of two days ago, my phone will not start, and I am unable to restore the firmware. The phone is a 3G running pwned 2.1 firmware. The phone got very hot, and the battery quickly drained. At about 50%, I restarted it, but it didn't help. At 20%, I plugged it in. The battery started draining slower, but it was still draining. Now the battery is completely dead as far as I can tell; the phone only 'works' while connected to USB. I booted it into recovery mode, and iTunes detected it. When I tried to restore the firmware (I tried vanilla and pwned 2.1, 2.2, and 2.2.1), the phone would shut off while iTunes said 'preparing iphone for restore', and then about 2 or 3 minutes after the phone shut off, iTunes would give me a 1604 error. I then tried it from DFU mode. When I started a restore, the phone screen would light up white (from the off that is DFU mode). If I tried any firmware other than 2.1, the screen would stay white and I would get an error 23. With 2.1, the same thing that happened in recovery mode would happen. I have also downloaded iRecovery, though I don't really understand what it does. I've been unable to find instructions for it anywhere. It detects my phone (though only in recovery mode, not DFU). I can change the background color, and I can load files into memory. I'm not sure how to use it to do anything useful. Ideally, I would like to get my phone working again. However, if I can't, I want to somehow get the default boot logo and recovery image onto the phone so that I can return it. I'm not sure if it will help, but here is the output from printenv in iRecovery: Code: config_board = 'n82ap' loadaddr = '0x9000000' boot-command = 'fsboot' idle-off = 'true' boot-device = 'nand0' boot-partition = '0' boot-path = '/System/Library/Caches/com.apple.kernelcaches/kernelcache.s5l8900x' display-color-space = 'RGB888' display-timing = 'optC' P bootdelay = '0' P backlight-level = '46' P platform-uuid = <DATA> P auto-boot = 'false' image-version = '0x3' framebuffer = '0xfd00000' secure-boot = '0x1'