 				
 				if (_isPlaying)
 				{
-					_currentTime = _loopBeginTime
-						+ (_currentTime + deltaT - _loopBeginTime)
-						% (_loopEndTime - _loopBeginTime);
+					_currentTime = loopBeginTime
+						+ (_currentTime + deltaT - loopBeginTime)
+						% (loopEndTime - loopBeginTime);
 				}
 				
 				if ((deltaT > 0 && lastCurrentTime > _currentTime)

			
			if (!_nextLabelIds.length)
			{
				updateNextLabel(_loopBeginTime);
			}
			else if (min == _loopEndTime && _looping)
			{
				for(i = 0; i < _labelTimes.length; ++i)
				{
					if (_labelTimes[i] == _loopBeginTime && _nextLabelIds.indexOf(i) == -1)
						_nextLabelIds.push(i);
				}
			}
		}
		
		public function play() : IAnimationController
		{
			_isPlaying = true;
			_lastTime = _timeFunction != null ? _timeFunction(getTimer()) : getTimer();
			_started.execute(this);
			
			checkLabelHit(_currentTime, _currentTime);

			
			if (newTime < previousTime)
			{
				if (previousTime < nextLabelTime && nextLabelTime <= loopEndTime)
					trigger = true;
				else if (loopBeginTime <= nextLabelTime && nextLabelTime <= newTime)
					trigger = true;
			}
			else
