NSTimer retains it's target. In some cases this leads to the target never being released. Wrap the real target inside a TimerTargetProxy to avoid this.