Dynamic memory management has always been a source of trouble, and garbage collection is just a way to overcome the lack of proper memory management in many languages. This presentation shows how Ada addresses this issue in several original ways: first by requiring much less dynamic memory than other languages, and then by providing powerful tools for controlling allocation and deallocation when it is necessary.