I've had the problem with my iPhone's in the past. I'll let you in on a little secret, told to me by a very good friend of mine who at one point in time worked very close to Apple.
Get yourself some rubbing *******, if you don't have any on hand any clear ****** you have around the house will do. Pour some of it into a bowl so it's about a centimetre or two deep, then submerge the phone in the ******* and leave it there overnight. The next morning take the phone out of the ******, shake off the excess and then place it on a hot radiator for the rest of the day in order for it to dry out and the problem should be completely fixed by the end of the day.
IMPORTANT: Make sure you switch the phone off before you follow any of the instructions above.
Good luck :hatsoff: