                         // b/c we may cause a security violation trying to do it
                     }
                 
-                                        if (_swfBridge)
-                                        {
-                                                var request:SWFBridgeEvent = new SWFBridgeEvent(
-                                                                                                                                        SWFBridgeEvent.BRIDGE_APPLICATION_UNLOADING,
-                                                                                                                                        false, false,
-                                                                                                                                        _swfBridge);
-                                                 _swfBridge.dispatchEvent(request);
-
-                                        }
-
-                    Loader(contentHolder).unload();
-
-                                        if (!explicitLoaderContext)
-                                                _loaderContext = null;
+                    if (_swfBridge)
+                    {
+                        var request:SWFBridgeEvent = new SWFBridgeEvent(
+                                                        SWFBridgeEvent.BRIDGE_APPLICATION_UNLOADING,
+                                                        false, false,
+                                                        _swfBridge);
+                         _swfBridge.dispatchEvent(request);
+                    }
+
+                    // Use the new unloadAndStop method in FP10 if this object's
+                    // unloadAndStop method was called. Otherwise call unload
+                    // as usual.
+                    if (useUnloadAndStop)
+                        Loader(contentHolder).unloadAndStop(unloadAndStopGC);
+                    else 
+                        Loader(contentHolder).unload();
+
+                    if (!explicitLoaderContext)
+                        _loaderContext = null;
                 }
                 else
                 {

                }
            }

                        // when SWFLoader/Image is used with renderer
                        // recycling and the content is a DisplayObject instance
                        // the instance can be stolen from us while
                        // we're on the free list
                        try
                        {
                                if (contentHolder.parent == this)
                                        removeChild(contentHolder);
                        }
            catch(error:Error)
            {
                                try
                                {
                                        // just try to remove it anyway
                                        removeChild(contentHolder);
                                }
                                catch(error1:Error)
                                {
                                        // Ignore any errors thrown by removeChild()
                                }
            }

            contentHolder = null;


        isContentLoaded = false;
        brokenImage = false;
        useUnloadAndStop = false;

        if (!_source || _source == "")
            return;
