# File lib/aws/sqs/queue.rb, line 479
      def batch_send *messages

        entries = messages.flatten

        unless entries.first.is_a?(Hash)
          options = entries.last.is_a?(Hash) ? entries.pop : {}
          entries = entries.collect{|msg| { :message_body => msg } }
          if delay = options[:delay_seconds]
            entries.each {|entry| entry[:delay_seconds] = delay }
          end
        end

        entries.each_with_index {|entry,n| entry[:id] = n.to_s }

        client_opts = {}
        client_opts[:queue_url] = url
        client_opts[:entries] = entries

        response = client.send_message_batch(client_opts)

        failed = batch_failures(entries, response)

        sent = response.successful.collect do |sent|
          msg = SentMessage.new
          msg.message_id = sent.message_id
          msg.md5 = sent.md5_of_message_body
          msg
        end

        raise Errors::BatchSendError.new(sent, failed) unless failed.empty?

        sent
        
      end