Due to changes with the way that dupliframes were being evaluated (one of those being that the animation for the object being animated would get reevaluated for every frame sample for dupliframes) to get them working properly again sometime during the 2.5 series, the dupliframe- sampling loop would be prematurely terminated on the first frame in this example. That is because after the first step of the loop, the ob->dupend property would have changed its value as it was being animated, leading to the loop terminating, and only the a single dupli getting added.