Ah, right, the timer variable is a pointer. It would work like I described if you declared it as a time.Timer directly, see http://play.golang.org/p/spCUUzg7au.