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

				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 )
			{
				// some 400-level fail, let's forward this out to jscript land
				removeListeners();
				updateLoadTrait(_loadTrait, LoadState.LOAD_ERROR);
				_loadTrait.dispatchEvent(new MediaErrorEvent(MediaErrorEvent.MEDIA_ERROR, false, false, new MediaError(event.status, "")));
			}

		private var _parser:M3U8PlaylistParser = null;
		private var _loadTime:int = 0;
		private var _playlistLoader:URLLoader = null;
        private var _errorHit:Boolean = false;  // So we only handle HTTP errors once; handling stuff twice dorks things.
		
		public function M3U8Loader(){
			super();
