To me, a=[1] until a.size != 1 should be equivalent to begin a = [1] end until a.size != 1 that is a = [1] is executed before until is evaluated. That said, the following does not work #!bin/env ruby begin a = [1] rescue Exception p "do nothing" end until a.size != 1 I do not understand why the "rescue" fails the working code. Thanks -Ted