more weak-ref mess fixing