 				this.removeListeners();
 				_playlistLoader.close();
 				_playlistLoader = null;
-				
-			}
+			}
+
+            // Reset our error hit logic since we're trying again.
+            _errorHit = false;
 			
 			if( _parser != null )
 			{

		
		private function onError(e:ErrorEvent):void
		{
			removeListeners();
			
			updateLoadTrait(_loadTrait, LoadState.LOAD_ERROR);
			_loadTrait.dispatchEvent(new MediaErrorEvent(MediaErrorEvent.MEDIA_ERROR, false, false, new MediaError(0, 'This video is not available.')));
		}
		
		private function onComplete(e:Event):void
		{
			removeListeners();
			
			try{
				CONFIG::LOGGING
				{
					_loadTime = getTimer() - _loadTime;

				updateLoadTrait(_loadTrait, LoadState.LOAD_ERROR);
				dispatchEvent(new MediaErrorEvent(MediaErrorEvent.MEDIA_ERROR, false, false, new MediaError(err.errorID, err.message)));
			}
		}
		
		private function onHTTPStatus(event:flash.events.HTTPStatusEvent):void 
		{
			if( event.status >= 400 && !_errorHit )
			{
				// some 400-level fail, let's forward this out to jscript land
				_errorHit = true;
				updateLoadTrait(_loadTrait, LoadState.LOAD_ERROR);
				_loadTrait.dispatchEvent(new MediaErrorEvent(MediaErrorEvent.MEDIA_ERROR, false, false, new MediaError(event.status, "")));
			}
