     }
                     
     /**
-     *  Handles open events dispatched by the streaming connection by re-dispatching
-     *  the event for the channel. 
+     *  The open event is dispatched when the streaming connection has been established
+     *  to the server, but it may still fail or be rejected so ignore this event and do
+     *  not advance the channel to a connected state yet. 
      * 
      *  @param event The OPEN Event.
      */
     private function streamOpenHandler(event:Event):void
     {
-       dispatchEvent(event); 
+       // Ignore. 
     }
                 
     /**

                        // Prepare for the next chunk.                                        
                        if (message != null)
                        {
                            // Watch for stream disconnect commands from the server.
                            // When one is received, do not dispatch it, and instead notify the channel to
                            // shut down and not attempt to reconnect.
                            if ((message is CommandMessage) && (CommandMessage(message).operation == CommandMessage.DISCONNECT_OPERATION))
                            {
                                var statusEvent:StatusEvent = new StatusEvent(StatusEvent.STATUS, false, false, DISCONNECT_CODE, "status");
                                dispatchEvent(statusEvent);
                            }

import mx.messaging.messages.AbstractMessage;
import mx.messaging.messages.CommandMessage;
import mx.messaging.messages.IMessage;
import mx.messaging.messages.AcknowledgeMessage;
    
use namespace mx_internal;    

