I was running PHP 5.3.2 and couldn't for the life of me get SOAP headers to work, no matter how carefully I built my class/wsdl/client. What finally fixed it was updating to the latest PHP. No idea if there was a bug somewhere or what, but it's never a bad idea to stay current and it might save you weeks of frustration!