Why FreeAndNil implementation doing Nil before Free? If you will look at the code of FreeAndNil procedure you will see: