Put it together... 1 def Binding.of_caller(&block) 2 old_critical = Thread.critical; Thread.critical = true 3 count = 0 4 cc = nil; result = callcc {|c| cc = c }