Thanks Folks !
Useful info from all. Yep, HeavyUser, my experiments indicate that FreeandNil() is safe to call as long as you are setting the declared variable to nil or creating the class before any risky behavior.
So, whenever I declare a class object in a Method (globals are different) I will now do -
var
List : TStringList = nil;
I think the extra processing effort is negligible and its only 6 extra characters for me to type.
Handoko's idea of declaring and maintaining a bool is very through but I suspect its overkill. And it does add that touch of extra processing and memory and, maybe might not be fool (ie fool programmers like me) proof. ASerge likes to create the class as soon as possible, before you get into the space where things go wrong. Pretty fool proof but sometimes (in my case) unnecessary processing and memory ?
All depends on how careful you are and want to be I guess !
Thanks folks !