PR for review.

Note sure if there are any cases where you could manage to get past this... but `if (!timer)` may be safer