         }
         else // Not attempting failover.
         {
-    	    // If we own the wait guard for initial Channel connects release it.
-    	    if (_ownsWaitGuard)
-    	    {
-    	        _ownsWaitGuard = false;
-    	        FlexClient.getInstance().waitForFlexClientId = false; // Allow other Channels to connect.
-    	    }
-            
-            _connecting = false;
+    	    connectCleanup();
         }
         
         if (reconnecting)

	          
	    dispatchEvent(ChannelEvent.createEvent(ChannelEvent.CONNECT, this, reconnecting));
	                                                            
        setReconnecting(false);
	}
	
	/**

    
    /**
     *  @private
     *  Cleanup following a connect or failover attempt.
     */
    private function connectCleanup():void
    {
        // If we own the wait guard for initial Channel connects release it.
        if (_ownsWaitGuard)
        {
            _ownsWaitGuard = false;
            FlexClient.getInstance().waitForFlexClientId = false; // Allow other Channels to connect.
        }
        
        _connecting = false;
        
        setReconnecting(false); // Ensure the reconnecting flag is turned off; failover is not being attempted.
    }
    
    /**
     *  @private
     *  This method is invoked by a timer from failover() and it works around a 
     *  reconnect issue with NetConnection based channels by invoking 
     *  internalConnect() after a slight delay.
