By following this guide you will be able to update your iPhone 4 to iOS 4.2.1 with preserving 1.59.00 baseband, which means that you will be able to unlock your iPhone 4 with ultrasn0w 1.2. Let's check out the full step by step guide after the jump
STEP 2: Open TinyUmbrella then click on "Start TSS Server"
STEP 3: Open iTunes.
STEP 4: Now, Click on "Restore" NOT "Update"
STEP 5: Now you will get "Error 1013" which means that your baseband has been preserved.
STEP 6: Exit iTunes.
STEP 7: Now you have to jailbreak your iPhone 4 with the Greenpois0n RC5, follow our guide posted here.
STEP 8: Finally you can unlock your iPhone 4 running baseband 1.59.00 using Ultrasn0w 1.2, follow our guide posted here.
Note: this guide is only work with iPhone 4.