DO WHILE Fred.drinks.count < 3 >> oJustOneMore = NEWOBJECT('Tequila.shot') >> Fred.drinks.add(oJustOneMore) >> oJustOneMore = NULL >>ENDDO >>SEEK floor > >Here's the Koziol variant: > >****Koziol.Drinks_Assign >LPARA vJustAnother >IF vJustAnother > THIS.DrinkMax > THIS.BlowsChunks() >ELSE > THIS.Drinks=vJustAnother >ENDIFI like it; it makes it easy to accept shot objects of any type! But the code following the BlowChunks() method is very messy, and requires garbage collection by a third-party product, or the Koziol object won't like the environment when it reinstantiates!