Clear weak pointers
None of the weak pointers was ever cleared opening the possibility to overwrite data in arbitrary objects.
I though I had checked for pairing calls of clearing the pointers when reviewing !82 (merged) but seems I didn't, sorry about that.