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 alcohol, if you don't have any on hand any clear liquor 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 alcohol and leave it there overnight. The next morning take the phone out of the liquor, 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: