diff --git a/spine-csharp/src/AnimationState.cs b/spine-csharp/src/AnimationState.cs index a1432d6d1..6be02a081 100644 --- a/spine-csharp/src/AnimationState.cs +++ b/spine-csharp/src/AnimationState.cs @@ -366,10 +366,12 @@ namespace Spine { } // Queue complete if completed a loop iteration or the animation. - if (entry.loop ? (trackLastWrapped > entry.trackTime % duration) - : (animationTime >= animationEnd && entry.animationLast < animationEnd)) { - queue.Complete(entry); - } + var complete = false; + if (entry.loop) + complete = duration == 0 || (trackLastWrapped > entry.trackTime % duration); + else + complete = animationTime >= animationEnd && entry.animationLast < animationEnd; + if (complete) queue.Complete(entry); // Queue events after complete. for (; i < n; i++) {