Huh? I don't see a call to DMGetWorkArray anywhere to fill closure, which looks to be NULL on first call of this function.