P0046 is a boost solenoid performance code. It is set when the turbo veins actual does not follow desired. It can be caused by either a broken inducer ring which causes the turbo veins to stick, bad solenoid, sludged solenoid, or a bad/sticking turbo vein postion sensor. I was just helping a friend with this code along with a P2563 on Friday, and his ended up being a coked turbo. The oil circuit that supplies oil to the soelnoid and turbo vain controls was plugged up with nasty coked oil. We had to pull the solenoid, run it through my ultrasonic cleaning tank for 10 minutes to free it up and get the burnt coked oil out of it, put the solenoid back in, then pull the sensor out, and clean it up. Also while we had the solenoid out I took a screwdriver and rag and wiped out some of the mess from inside the turbo. It got it back working again to get him going, but is only a short term fix. others have said they switched to synthetic oil to help clean the coking out of the inside of the turbo.