frmEditMC := nil; // optional
I don't know how many times I must say this. "FreeAndNil" does exactly what you are doing in with one call, not two separate calls.
There is no need to nil at all, thats why I wrote "optional", or do you see any "if Assigned()" checks in his code?
As long we see nothing else beside his calls to show a formular, this all is just mumbo jumbo and wild guessing.