You need mature customers. If you ask a customer who has never seen a software for this problem domain, he will change his mind EVERY time you ask him the same question.
Mature customers are sure about what they want because they have already worked in the field for many years and they know it is not their job to make late suggestions, they are not being paid for asking for a "last one thing", that that we really need. Immature customers are never satisfied with the software unless you accept those late requirements as top priority. The problem with those late requirements is that they are always top priority, so new requirements will always leave older requirements unsolved. Over a long period fo time you will not have finished anything.
XP solves that through frozen releases. Whatever was top priority and accepted to be done in this release will be released in this time frame, it does not matter if priorities change. If something was misunderstood as each user story can't now be implemented in the time frame, they are simply tossed from the release. But beware that you may end up delivering absolutely nothing if the customer is immature enough.