     {
         super(agent, msg, channel);
         _log = log;
+        
+        // Track channel connected state.
+        // If the channel disconnects while this poll is outstanding, suppress result/fault handling.
+        channel.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, channelPropertyChangeHandler);
     }
 
 	//--------------------------------------------------------------------------

        	pollingChannel.pollFailed(false);
        }
    }
}

        	return;
       	}
       	
       	if (msg.headers[CommandMessage.POLL_WAIT_HEADER] != null)
       	{
       	    doPoll(msg.headers[CommandMessage.POLL_WAIT_HEADER]); 
       	}
       	else
       	{
       	    doPoll();
       	}
    }

    /**
