I don't think you're going to get a "straight" answer to this - which is an indicator of how the client feels, even when you do your best to explain it to them. I've been here so many times . . . it's one of the most difficult things about this business.
This is my (and your) first mistake. Learn to stop it now - OR - make it overly, abundantly CLEAR what this is costing you in terms of time and money and that they are getting a FREEBIE. Put it in your invoices: "added X feature (.5 hrs) no charge." Constantly making them aware of this helps.
And, what's worse, they don't want to take the time to read through your extended explanation - which ALSO sucks more of your valuable time that you can't bill for. I don't have a great answer for this one, but what I do is write out a full explanation, kick myself in the arse because I know they won't understand it, and condense, condense, condense.
However, with a running history, you can look at past examples:
"Remember the mailing list function you asked for? When complete, that was X hours, 3500 lines of code, a cron job to run the mailings, and two new database tables. It only looks simple because I program it to look simple, what goes on in the programming is very complex. This is similar."
Part of it is salesmanship, I suppose.
The other part is to separate emotions and impressions from the equation. Your client is a nice guy. When you chat, you talk about sports scores, kids, family, it's almost like you're buddies. But the truth of truths, it's all about the money and even the nicest client will take whatever they can get for free. So it's not your job to cure them of their ignorance of what you do. Don't make it your job, charge for your time, if they can find someone else to do it for less, LET THEM.
Don't worry, they won't, they know what they have in your court and humans fear the unknown most of all.