 
 		internal function processMessageReceived(even:Boolean):void {
 			_outputMessageSendAvailable = true;
-			if (_alive) {
+			if (_messaging) {
 				if (_outputMessageEven != even) {
-					sendMessage0(ByteArray(_outputMessages.getFirst()));
+					sendNextMessage();
 				}
 				else {
 					if (_outputMessages.isEmpty()) {

		public function handleChannelClose():void {
			_logger.debug("Channel closed (alive: {})", _alive);

			_alive = false;
			_channel = null;
			if (_opened) {


		public function acceptChannel(channel:Channel):ChannelHandler {
			if (_opened) {
				_logger.debug("Channel opened");

				_alive = true;
				_channel = channel;
				_processor.processAccept();
				return this;
