When evaluating this form (dolist-with-progress-reporter (i (number-sequence 1 4)) "Doing stuff" (sleep-for 1)) I would expect to get the messages Doing stuff... Doing stuff...25% Doing stuff...50% Doing stuff...75% Doing stuff...Done each update after one argument of the list has been handled. Instead, it seems I get Doing stuff... Doing stuff...33% Doing stuff...66% Doing stuff...100% Doing stuff...Done This confuses me, because after "processing" one out of four elements, I wouldn't expect the message to say I already finished a third. And on the other side, I am still not done after reaching 100%, and in this case, am still waiting for the last element to be processed. I am not sure if this is intentional, but in case it is no, the following patch should fix it: