| Index: Source/core/svg/animation/SVGSMILElement.cpp | 
| diff --git a/Source/core/svg/animation/SVGSMILElement.cpp b/Source/core/svg/animation/SVGSMILElement.cpp | 
| index 20ac8cd39ffdb471d997eb0b5a7583e4c6bd64b5..8e3ee0e6307a00ca144e58e03039f7be48046f80 100644 | 
| --- a/Source/core/svg/animation/SVGSMILElement.cpp | 
| +++ b/Source/core/svg/animation/SVGSMILElement.cpp | 
| @@ -1020,7 +1020,7 @@ SVGSMILElement::RestartedInterval SVGSMILElement::maybeRestartInterval(SMILTime | 
| } | 
|  | 
| if (elapsed >= m_intervalEnd) { | 
| -        if (resolveNextInterval()) | 
| +        if (resolveNextInterval() && elapsed >= m_intervalBegin) | 
| return DidRestartInterval; | 
| } | 
| return DidNotRestartInterval; | 
| @@ -1197,7 +1197,7 @@ bool SVGSMILElement::progress(SMILTime elapsed, SVGSMILElement* resultElement, b | 
| if ((oldActiveState == Active && m_activeState != Active) || restartedInterval == DidRestartInterval) { | 
| smilEndEventSender().dispatchEventSoon(this); | 
| endedActiveInterval(); | 
| -        if (restartedInterval == DidNotRestartInterval && m_activeState != Frozen && this == resultElement) | 
| +        if (!animationIsContributing && this == resultElement) | 
| clearAnimatedType(m_targetElement); | 
| } | 
|  | 
|  |