diff --git a/retry.go b/retry.go
index <HASH>..<HASH> 100644
--- a/retry.go
+++ b/retry.go
@@ -19,6 +19,8 @@ package minio
 import (
 	"math/rand"
 	"net"
+	"net/url"
+	"strings"
 	"time"
 )
 
@@ -56,6 +58,12 @@ func isNetErrorRetryable(err error) bool {
 	switch err.(type) {
 	case *net.DNSError, *net.OpError, net.UnknownNetworkError:
 		return true
+	case *url.Error:
+		// For a URL error, where it replies back "connection closed"
+		// retry again.
+		if strings.Contains(err.Error(), "Connection closed by foreign host") {
+			return true
+		}
 	}
 	return false
 }
retry: Retry requests for errors like network EOF.

Type case happens when s3 abruptly closes connection, in case
of PUT object.

Error is in this form

```
api_functional_v4_test.go:<I>: Error: Put <URL>