Alright, i dont know if this has already been said but imma say it anyways, I found this out when messing with a customers 3g iphone i was jailbreaking. I was downgrading it from 3.1.3 to 3.1.2 by shift restoring and when i got the 1501 error and was stuck at recovery. i executed blackrain causing it to jailbreak and boot up. But when it booted up the carrier settings were missing. I read some forum post on here about it and it said you had to shift update to install the downloaded update. Turns out itunes wont recognize the update cause its an .ipcc so i thought, how could i keep the carrier settings on it when downgrading.

I decided to update to 3.1.3

then "shift + look for update" selected the 3.1.2 FW

got the 1500 error and JB it with blackrain.

works perfect.

because your updating to 3.1.2 the carrier settings are left on the phone.

BTW, You have to have your permissions changed so that the older firmwares can be signed. I forget how to do it so just search the site for it.