Because of the way managed code works, you dont need to set clsNew = Nothing before creating a new one. You can call clsNew.Dispose() (if your class implements IDisposable) to dispose of the object, but the class will be disposed of as soon as there is no reference to it anyway. You can simply use clsNew = New MyClass to set a new instance, and the framework will handle the disposition itself.