People want to be reasonable and they want to get along, so keep everything as clear as possible and as simple as possible and you'll be alright.
Never try to hide things from a client- the best thing is to keep them up to date including any problems you are running into rather than trying to gloss over those. They would rather know now that there is a chance things will be pushed back a week than find out two days before a deadline.
Ask questions and then ask more questions. You can use questioning a client to make it clear that you are understanding what they want but you can also use it to lead them to conclude for themselves that there is a problem with what they are asking for.
If they don't understand something you are trying to explain, be patient and think of a different way to explain it. If there are technical issues likely to come up that you don't expect them to understand easily, think up some user stories ahead of time or work out some diagrams that will make the problem clear to them.
If you aren't sure that you have understood something, double check with them. Also if you are sure you have understood.
Always end meetings on a positive and forward-looking note, even if you have had a rough time of it right now.