# File lib/aws/s3/multipart_upload.rb, line 216
      def copy_part(copy_source, options = {})
        part_options = base_opts.merge(options)
        part_options.merge!(:copy_source => copy_source)

        unless part_options[:part_number]
          @increment_mutex.synchronize do
            part_options[:part_number] = (@last_part += 1)
          end
        end
        part_number = part_options[:part_number]

        resp = client.copy_part(part_options)
        @completed_mutex.synchronize do
          @completed_parts[part_number] = {
            :part_number => part_number,
            :etag => resp[:etag]
          }
        end
        UploadedPart.new(self, part_number)
      end