I seem to recall someone on the tutor list suggesting way back that if you comment out the mainloop() of a Tkinter program, it will (usually) work fine under IDLE. The issue is that IDLE uses Tkinter itself, and python gets confused when two mainloop()s are running (rather, gets confused when you try to shut one of them down).