                  ", updates=" + updates + "].");
 
         // apply the updates to our cached scene
-        var model :SceneModel = loadSceneModel(_pendingSceneId);
+        var model :SceneModel = loadSceneModel(_pendingData.sceneId);
         var failure :Boolean = false;
         for each (var update :SceneUpdate in updates) {
             try {

            },
            function () :void { // succeeded
                // resend our move request now that we're connected to the new server
                sendMoveRequest();
            }
        ));

        }
    }

    // documentation inherited
    override public function clientDidLogoff (event :ClientEvent) :void
    {
        super.clientDidLogoff(event);

        // clear out our business
        clearScene();
        _scache.clear();
        _pendingData = null;
        _previousSceneId = -1;
        _sservice = null;
    }

    /**
     * Issues the scene move request using information from the supplied pending data.
     */
    protected function sendMoveRequest () :void
    {
        // check the version of our cached copy of the scene to which we're requesting to move; if
        // we were unable to load it, assume a cached version of zero
        var sceneVers :int = 0;
        if (_pendingData.model != null) {
            sceneVers = _pendingData.model.version;
        }

        // issue a moveTo request
        log.info("Issuing moveTo(" + _pendingData.sceneId + ", " + sceneVers + ").");
        _sservice.moveTo(_wctx.getClient(), _pendingData.sceneId, sceneVers, this);
    }

    /**
     * Creates a pending scene move request. Derived classes may wish to extend this data with
     * additional information to be tracked during movement between scenes. This is encapsulated so
     * that if a scene move requires a switch to a new server, all necessary data can be properly
     * tracked during the server switch.
     */
    protected function createPendingData () :PendingData
    {
        return new PendingData();
    }

    /**
