 
         // Notify.
         var resultEvent:ResultEvent = ResultEvent.createEvent(ackMessage.body, token, ackMessage);
-        dispatchRPCEvent(resultEvent);
+        if (delay > 0)
+            new AsyncDispatcher(dispatchRPCEvent, [resultEvent], delay);
+        else
+            dispatchRPCEvent(resultEvent);
     }
 
     /**

     */
    protected function messageHandler(event:MessageEvent):void
    {
        unscheduleHeartbeat();
        dispatchEvent(event);
        scheduleHeartbeat();
    }

    /**

        var command:CommandMessage = CommandMessage(token.message);
        var handlingLogin:Boolean = (command.operation == CommandMessage.LOGIN_OPERATION);
        var creds:String = (handlingLogin) ? String(command.body) : null;
        var delay:Number = 0;

        if (handlingLogin)
        {
