<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="reftest-wait" onload=" document.documentElement.pauseAnimations(); document.documentElement.setCurrentTime(0); document.getElementById('c').removeAttribute('dur'); setTimeAndSnapshot(2, false)"> <script xlink:href="../smil-util.js" type="text/javascript"/> <!-- At first we have: c: 0s-1s new -> a: 1s-1.5s new -> b: 1s-2s new -> c: 0s-1s [end: 2s] Then we remove dur on c giving us: c: 0s-2s change -> a: 2s-2.5s change -> b: 2s-3s change -> c: 0s-3s change -> a: 3s-3.5s [Should break the cycle here] change -> b: 3s-4s change -> c: 0s-4s etc. If we break on the second change notice we should arrive at: a: 2s-2.5s b: 2s-3s c: 0s-3s --> <rect x="100" y="100" width="100" height="100" fill="red"> <animate attributeName="y" attributeType="XML" from="0" to="0" id="a" begin="c.end" dur="0.5s"/> <animate attributeName="fill" attributeType="CSS" id="b" values="green; blue" begin="a.begin" dur="1s"/> <animate attributeName="x" attributeType="XML" id="c" from="0" to="100" fill="freeze" begin="0" end="b.end" dur="1s"/> </rect> </svg>