do while !isnull(this.ToDoObjects[1]) lnTopOfStack = alen(this.ToDoObjects) loCurrent = this.ToDoObjects[lnTopOfStack] loTopOfStack = lnTopOfStack - 1 if lnTopOfStack = 0 this.todo[1] = null else dimension this.ToDoObjects[lnTopOfStack] endif * do whatever with loCurrent enddoIf you don't want to constantly redimension the array, create and maintain a corresponding ToDoObjectCount property.