I have the answer. fyi, it is that doSomething until condition does not work at all like begin doSomething end until condition In the first case, the condition is checked BEFORE the doSomething is run. In the second case, the condition is checked AFTER the doSomething is run. I am not sure just why this is or how I could have figured it out intuitively. It seems to me that it would be better to have something like this (to mimic pascal) doSomething while condition #check condition before doSomething until condition #check condition after Thanks for all your input everyone! I finally got there. :) -- Posted via http://www.ruby-forum.com/.