[Ro] 2009 This is a page about Execution and Custom Control Structures. I found out that I know nothing about how execution happens, how the tcltk interpreter works, and what it's capable of. In the end, I truly know nothing. proc imdone {} { puts "yknow what, im done" set level [info level] return -level $level -code return } When you execute this, at any time, from any proc, however many levels deep: all execution ends. No error, it just triggers a cascading normal return. To people who understand everything already (har har), this is nothing new. But to me, it just about rendered me incapable of thought and threw into questioning everything I knew about life. I'm used to thinking that g2 will return, and g1 will continue running. But no, when you use [return] with the -level option, you can actually cause the interpreter to finish all execution. proc g2 {args} { puts G2-hello imdone puts G2-goodbye } proc g1 {} { puts g1-BEGIN g2 a b c puts g1-END } g1 So that's the first bit of code.