Yeah. Free won't cause trouble if it's a nil pointer. However, if you pass it an invalid pointer, (random garbage value or an object that's already been freed,) it'll raise exceptions. So no need to check Assigned, but the nil initialization at the start should still be there.