I changed this logic slightly.  If we dispose a client, and we have stuff in the queue, and the connection is dropped, the previous version of the code wouldn't ever reject the outstanding commands.  Please double-check this thinking :)