 
     if not @objectParams.Bucket then throw new Error "Bucket must be given"
 
-    @client = new aws.S3().client
+    @createNewClient()
 
     @initiated       = false
     @receivedAllData = false

    @handleStream stream
    process.nextTick => @initiateTransfer()


  initiateTransfer: ->
    @client.createMultipartUpload @objectParams, (err, data) =>


          if err
            if not callbackCalled
              if err.code is 'RequestTimeout'
                # create new client as old one died..and try again in next iteration
                @createNewClient()
                # do not propagate err as that whould kill rest of uploads
                next null
              else
                next err
            else
              console.error 'This callback was already called, WTF; chunk', chunk
            @emit 'error', err
