In addition to all the good info already given I'd check for a vacuum leak too. Sometimes a wiper motor or vacuum advance canister goes bad, or it could be a cracked or loose hose. Just a thought.