That's a good setup !
How about switch de-bounce (make sure its a good press)

I use;

if sw not_pressed then out
pause 10 ' or 20 or 50 ms
if sw not_pressed then out
good sw pressed stuff here

don