Something to consider: if you're billing by the hour, your clients aren't paying for a product, they're paying for you. Would you expect a company that hired you for a salary to dock your wages for time spent bug-fixing?
Make it entirely clear and transparent what you're working on, including time spent bugfixing, and if they're unhappy they can take their business elsewhere.
This of course puts great incentive on you to write high-quality code, because your failings in that area will be visible as bugs to the client.
This is how I consider it and try to phrase it to my clients. They buy my time. If they waste a lot of it with meetings and false starts, at the end of the day it's their responsibility to use my time wisely. That being said, it's my responsibility to make sure my time is of great value to them and produce quality work.
Make it entirely clear and transparent what you're working on, including time spent bugfixing, and if they're unhappy they can take their business elsewhere.
This of course puts great incentive on you to write high-quality code, because your failings in that area will be visible as bugs to the client.