No this was a hardware problem,yours might just be a software problem and I have got my fingers crossed that it is. Have you jailbroken the devise? If you have remove any apps you installed using cydia and reboot phone.
If you have not do the following:Go to settings-General-Network,in the network tab Turn off "enable 3G" then turn off "cellular Data" then restart the phone.If the problem persists go to Settings->general->reset,in the reset tab click "Reset Network Settings" and confirm and restart the devise,your phone will then grab the info again. This should fix the problem if it doesn't(I know this sounds weird) Put your phone into flight mode and then turn it off,turn it back on and put flight mode off which aparently has helped fix this problem for a few people.
And the last thing you can try is resetting the whole devise,Just Backup your phone with itunes and then reinstall iOS 4.1(I know you on 4.0 but it wont let you do 4.0 again)
If none of this works you will need to take the devise back to the shops