Have you looked at what is actually being done by the timer? Try doing /timer to view what commands the timer is executing when it goes off. You have prefixed the $!duration identifier, but you haven't prefixed the $dialog(setup) identifier. The timer may actually be executing: if ($false) did..etc

-genius_at_work