During the last 15 years, intense research has been devoted to bloat (the growth in average program size without corresponding improvements in fitness) in genetic programming. Many theories have been proposed to explain this phenomenon. None has acquired general acceptance. The reason is probably that none was correct. Due to the lack of an explanation many empirical techniques to control bloat have been proposed. Only one has some theoretical foundation. Clearly, an unsatisfactory situation. During the last 12 months or so, at long last, we (believe we) have found the real explanation for bloat. The explanation is so simple that it is almost unbelivable that it remained undiscovered for so long. In this talk I'll explain what it is, what evidence we have and what practical recipes and algorithms we have recently been able to devise to control bloat in a principled manner.