What is reloading self, is reload-self: edit the program in a text widget and reload. Did I just replace notepad? proc reload_self {} { global tx set gcode [$tx get 1.0 end-1c] file_save $::LOADED_SOURCE_FN $gcode exec tclkit $::LOADED_SOURCE_FN & exit } Where $tx is the text widget.