 
           if err
             if not callbackCalled
-              next err
+              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


    if not @objectParams.Bucket then throw new Error "Bucket must be given"

    @client = new aws.S3().client

    @initiated       = false
    @receivedAllData = false

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

  createNewClient: ->
    @client = new aws.S3().client

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