Greetings,
I did not see anything in your Sketch to take care of switch bounce. A mechanical switch (actually, any switch) will likely create multiple signal changes due to the contacts vibrating slightly as they close.
There are several ways to fix this problem. Adding some simple code to read the switch twice, with a small delay, to check that the switch did in fact change and stay changed. The delay can be around 10ms to 50ms for most switches.
Google 'debounce switches' to learn more. Also this should help you: http://arduino.cc/en/Tutorial/Debounce