If he is calling you to add something (or change something) that he thought should have been part of the spec, but never actually told you about: -Charge if it's more than a few hours. Tons of clients sell a developer/designer on a spec, only to change their mind once it is all done. This is not your fault. Just because they don't like their idea once they see it, doesn't mean you should eat the cost.
All that being said, some clients (read: most clients) will always try to get some work done for free. If they are a good client, that has a proven track record of being understanding when you need more hours, or listen to your recommendations, then go ahead and do a few hours of free work to make them happy. But if this is your first project with this guy, you need to stand firm. Work is not free. New features are not free. Changes are not free. These are all things that take you away from the things you love in life, and you need to be compensated for. If they don't understand this, than they are free to search for someone who will work for free. My old coach (boxing) used to say, "Only a fool gets punched for free".
Don't let a client bully you into becoming a volunteer worker.
You need to look up the term "change order" and start sending them.
If it's 1 you can point to the spec, and if it's 2 you might have to sit down and explain why it's not your domain? Or if it is, how you would bill to fix it?
In either case I'm thinking this client fits in the "Thanks but no thanks" for future work.
When you launch something, give him 15-30 days to find anything, that's it. Anything after 15-30 days is billable.
Make sure you have every feature clearly defined before building things. Get signoff at every step of "What are we trying to build", "How are we going to build it" via email so there's no room for misinterpretation or misunderstanding.
Customers will always be clueless, thats why they hired you. Educating them on how software works, interacts and affects things takes time, unfortunately.