I have done a ton of searching and found how to accurately program a key fob on the forums. The problem with all the directions that I had found was that once I programmed one key fob, the others would erase. None of the directions showed all the steps to program more than one key correctly without losing the others (which most people will have). This DIY has the correct programing procedure no matter how many fobs you have.

For some reason if you pull your battery or you change the battery in your fob you might be finding a situation where you need to do this programming.

There are two kinds of programming. If you have remotes that have been programmed to the car previously the steps are easy. There are longer steps if the keys are new and those are the secondary ones.

Steps to reprogram keys to a car they are already linked to:
1. Press and hold the unlock key on a remote
2. Insert key in ignition and turn to on (while still holding unlock)
3. Hold unlock while in the on position for 2 seconds
4. Turn key to off, remove from ignition and release button.

Do this for each remote. Relink to seat positions (press and hold mem position #, then unlock button for 2 seconds and release both) and done.

To program new remotes on a car never linked to previously:

1. Take a key (valet key works best, put it into the ignition and turn the key to the "on" position, so the dashboard lights come on.
2. Roll down the driver's side window (not required, but a good idea in case there's a problem).
3. Exit the car and close the door.
4. With a second key, physically lock the doors by turning the key clockwise (don't use a remote).
5. Take the first remote to be programmed, press the unlock button. The lights will flash once.
6. Wait 10 seconds and press the unlock button. The doors should unlock. That first transmitter is now programmed.

***If you have only one key skip to step 16. Otherwise continue to step 7.***

7. Lock the door again (physically) with the key, (not the remote) by turning clockwise.
8. Press the unlock button two times with a one second interval in between, the lights will flash with each button press for a total of two flashes.
9. Wait 10 seconds and press the unlock button. The doors should unlock. The second transmitter is now programmed.

***If you have three keys proceed to step 10. Otherwise skip to step 16.***

10. Lock the door again (physically) with the key, (not the remote) by turning clockwise.
11. Press the unlock button three times with a one second interval in between, the lights will flash with each button press for a total of three flashes.
12. Wait 10 seconds and press the unlock button. The doors should unlock. The third transmitter is now programmed.

***If you have four keys proceed to step 13. Otherwise skip to step 16.***

13. Lock the door again (physically) with the key, (not the remote) by turning clockwise.
14. Press the unlock button four times with a one second interval in between, the lights will flash with each button press for a total of four flashes.
15. Wait 10 seconds and press the unlock button. The doors should unlock. The fourth transmitter is now programmed.

16. Remove the key from the ignition.

Make sure that to test the newly program remotes, the original key is removed from the ignition since this exits the programming process. Someone might be a bit frustrated trying to test it with it still in 'program' mode.

I had some diffuculty accessing the programming mode. If it doesnt work then take the key out of the ignition and start over. Rinse lather repeat. It will go eventually.

If you are still having problems after trying it more times than you can count, check the key is right one for year of car or that the key and battery are good.