diff --git a/authorization.go b/authorization.go
index 3e99d41..82e78b7 100644
--- a/authorization.go
+++ b/authorization.go
@@ -65,8 +65,8 @@
 	if err != nil {
 		return nil, err
 	}
-	ah.Uri = url.RequestURI()
 
+	ah.Uri = url.RequestURI()
 	ah.Response = ah.computeResponse(dr)
 
 	return ah, nil
diff --git a/digest_auth_client.go b/digest_auth_client.go
index 30c8287..d6a6388 100644
--- a/digest_auth_client.go
+++ b/digest_auth_client.go
@@ -78,6 +78,7 @@
 		if err != nil {
 			return nil, err
 		}
+		defer resp.Body.Close()
 
 		if resp.StatusCode == 401 {
 			return dr.executeNewDigest(resp)
@@ -90,13 +91,13 @@
 
 func (dr *DigestRequest) executeNewDigest(resp *http.Response) (*http.Response, error) {
 	var (
-		auth *authorization
-		err  error
-		wa   *wwwAuthenticate
+		auth     *authorization
+		err      error
+		wa       *wwwAuthenticate
+		waString string
 	)
 
-	waString := resp.Header.Get("WWW-Authenticate")
-	if waString == "" {
+	if waString = resp.Header.Get("WWW-Authenticate"); waString == "" {
 		return nil, fmt.Errorf("failed to get WWW-Authenticate header, please check your server configuration")
 	}
 	wa = newWwwAuthenticate(waString)
@@ -107,9 +108,10 @@
 	}
 	authString := auth.toString()
 
-	if _, err := dr.executeRequest(authString); err != nil {
+	if resp, err = dr.executeRequest(authString); err != nil {
 		return nil, err
 	}
+	defer resp.Body.Close()
 
 	dr.Auth = auth
 	return resp, nil
@@ -124,8 +126,8 @@
 	if auth, err = dr.Auth.refreshAuthorization(dr); err != nil {
 		return nil, err
 	}
-	dr.Auth = auth
 
+	dr.Auth = auth
 	authString := dr.Auth.toString()
 	return dr.executeRequest(authString)
 }
@@ -141,10 +143,8 @@
 	}
 
 	req.Header.Add("Authorization", authString)
-
 	client := &http.Client{
 		Timeout: 30 * time.Second,
 	}
-
 	return client.Do(req)
 }
