Instead of fixing it it, trade it.
Mine was acting up too. 3 months out of warranty, i managed to trade it in for a new 4s with contract extension this week.
Getting around $3400 for a 15 month old 32gb 4 isn't too bad considering I really abused the battery (valor addict here) and wonky home button.