             // If we are loading new content we keep the old measured width/height to avoid
             // sizing to 0,0 for a frame unnecessarily. Otherwise we fall back to 0 unless
             // a preliminaryWidth/Height is set.
-            var previousWidth:Number = (_source == null || _source == "") ? 0 : measuredWidth;
-            var previousHeight:Number = (_source == null || _source == "") ? 0 : measuredHeight;
+            var usePreviousSize:Boolean = !(_source == null || _source == "" || loadFailed); 
+            var previousWidth:Number = usePreviousSize ? measuredWidth : 0;
+            var previousHeight:Number = usePreviousSize ? measuredHeight : 0;
             
             measuredWidth = !isNaN(_preliminaryWidth) && (previousWidth == 0) ? 
                 _preliminaryWidth : previousWidth;

        // clear any current image and remove any event listeners from 
        // load-event  dispatcher.
        setBitmapData(null);
    }
    
    /**

        // clear any current image and remove any event listeners from 
        // load-event  dispatcher.
        setBitmapData(null);
        loadFailed = true;
    }
    
    /**
