private void sendChainedMessages(Feed feed, List<String> messages) {
        String chain = feed.getName() + ": ";
        final String SEPARATOR = " | ";
        boolean isFirstMessageInChain = true;

        ListIterator<String> iterator = messages.listIterator( messages.size() );
        while ( iterator.hasPrevious() ) {
            String message = iterator.previous();
            if ( message.length() > MESSAGE_MAX_LENGTH ) {
                sendMessageToChannels(chain);
                sendMessageToChannels(message);
                chain = "";
                isFirstMessageInChain = true;
            } else if ( message.length() + chain.length() > MESSAGE_MAX_LENGTH ) {
                sendMessageToChannels(chain);
                chain = message;
                isFirstMessageInChain = false;
            } else {
                if (!isFirstMessageInChain)
                    chain += SEPARATOR;
                chain += message;
                isFirstMessageInChain = false;
            }
        }

        if ( chain.length() > 0 )
            sendMessageToChannels(chain);
    }