 				}
 				else if (reloadingQuality == targetQuality || reloadingQuality == -1)
 				{
-					if (!updateNewManifestSegments(newManifest, reloadingQuality) && reloadTimer != null)
-						reloadTimer.delay = timerOnErrorDelay;
-				}
-
+					if (!updateNewManifestSegments(newManifest, reloadingQuality) && reloadTimer)
+						reloadTimer.delay = timerOnErrorDelay;	
+				}
 			}
 			
 			dispatchDVRStreamInfo();

			isRecovering = true;
			lastBadManifestUri = (event as IOErrorEvent).text;
			
			// Create our timer if it hasn't been created yet
			if (!reloadTimer)
				reloadTimer = new Timer(HLSHTTPNetStream.reloadDelayTime + 1);
			
			// First set the timer to the error recovery interval set in HLSHTTPNetStream
			if (reloadTimer.delay != HLSHTTPNetStream.reloadDelayTime)
			{
				reloadTimer.reset();
				reloadTimer.delay = HLSHTTPNetStream.reloadDelayTime;

			var man:HLSManifestParser = getManifestForQuality(lastQuality);
			if (man && !man.streamEnds && man.segments.length > 0)
			{
				if (!reloadTimer)
					setUpReloadTimer(man.segments[man.segments.length-1].duration * 1000);
			}
			
			// Reset our recovery variables just in case
			isRecovering = false;
			backupStreamNumber = 0;
		}
		
		private function setUpReloadTimer(initialDelay:int):void
		{
			reloadTimer = new Timer(initialDelay);
			reloadTimer.addEventListener(TimerEvent.TIMER, onReloadTimer);
			reloadTimer.start();
		}
		
		private function onReloadTimer(event:TimerEvent):void
