       */
       public function setBGColor( c:* ):void {
           if (this.bgcolor == c && ! this.__bgcolorhidden) return;
-          if (c != null || this.__contextmenu == null) {
+          if (! (c == null && this.isBkgndRequired)) {
               this.__bgcolorhidden = false;
               this.bgcolor = c;
           } else {


      public function setBitmapCache(cache) {
          this.cacheAsBitmap = cache;
      }

      /**

           return parent.getChildIndex(this);
      }

      var __contextmenu:LzContextMenu;
      var __bgcolorhidden:Boolean = false;

      function get isBkgndRequired () :Boolean {
          // background is required for:
          // - LPP-7842 (SWF9: context-menu not shown for view without bgcolor/content)
          // - LPP-7864 (SWF: cachebitmap interferes with mouse-events)
          return this.__contextmenu != null || (this.clickable && this.cacheAsBitmap);
      }

      function updateBackground () :void {
          if (this.__bgcolorhidden && ! this.isBkgndRequired) {
              // remove invisible background
              this.__bgcolorhidden = false;
              this.bgcolor = null;
              this.draw();
          } else if (this.bgcolor == null && this.isBkgndRequired) {
              // create an invisible background
              this.__bgcolorhidden = true;
              this.bgcolor = 0xffffff;
              this.draw();
          }
      }

      /* LzSprite.setContextMenu
       * Install menu items for the right-mouse-button 
       * @param LzContextMenu cmenu: LzContextMenu to install on this view
       */
      function setContextMenu (lzmenu:LzContextMenu) :void {
          this.__contextmenu = lzmenu;
          this.updateBackground();
          // FIXME [anba 20090305] LPP-7847 (no context-menu for bitmap resource)
          // "contextMenu" is a swf9 property on flash.display.Sprite
          this.contextMenu = (lzmenu != null ? lzmenu.kernel.__LZcontextMenu() : null);
      }

      function setDefaultContextMenu (lzmenu:LzContextMenu) :void {
          // TODO [hqm 2008-11] In SWF8, we can set the contextMenu
          // property of MovieClip.prototype, which puts the menu on
          // every MovieClip by default. Not sure if there's any way
          // to do that in swf9.
          LzSprite.prototype.contextMenu = (lzmenu != null ? lzmenu.kernel.__LZcontextMenu() : null);
      }

      /**
       * LzView.getContextMenu
       * Return the current context menu
       */
      function getContextMenu() :LzContextMenu {
          return this.__contextmenu;
      }

