diff --git a/bin/swift b/bin/swift
index eb42c130..b61f47d0 100755
--- a/bin/swift
+++ b/bin/swift
@@ -331,7 +331,7 @@ def st_download(parser, args, thread_manager):
             headers, body = \
                 conn.get_object(container, obj, resp_chunk_size=65536,
                                 headers=req_headers)
-            header_receipt = time()
+            headers_receipt = time()
             content_type = headers.get('content-type')
             if 'content-length' in headers:
                 content_length = int(headers.get('content-length'))
@@ -391,9 +391,14 @@ def st_download(parser, args, thread_manager):
                 utime(path, (mtime, mtime))
             if options.verbose:
                 finish_time = time()
-                time_str = 'headers %.3fs, total %.3fs, %.3f MB/s' % (
-                    header_receipt - start_time, finish_time - start_time,
-                    float(read_length) / (finish_time - start_time) / 1000000)
+                auth_time = conn.auth_end_time - start_time
+                headers_receipt = headers_receipt - start_time
+                total_time = finish_time - start_time
+                download_time = total_time - auth_time
+                time_str = ('auth %.3fs, headers %.3fs, total %.3fs, '
+                            '%.3f MB/s' % (
+                                auth_time, headers_receipt, total_time,
+                                float(read_length) / download_time / 1000000))
                 if conn.attempts > 1:
                     thread_manager.print_msg('%s [%s after %d attempts]', path,
                                              time_str, conn.attempts)
@@ -460,9 +465,10 @@ def st_download(parser, args, thread_manager):
                     thread_manager.error('Account not found')
             elif len(args) == 1:
                 if '/' in args[0]:
-                    print >> stderr, ('WARNING: / in container name; you '
-                                      'might have meant %r instead of %r.' % (
-                                      args[0].replace('/', ' ', 1), args[0]))
+                    print >> stderr, (
+                        'WARNING: / in container name; you might have meant '
+                        '%r instead of %r.' % (
+                            args[0].replace('/', ' ', 1), args[0]))
                 container_queue.put((args[0], object_queue, options.prefix))
             else:
                 if len(args) == 2:
diff --git a/swiftclient/client.py b/swiftclient/client.py
index f8ba3d03..1653b04f 100644
--- a/swiftclient/client.py
+++ b/swiftclient/client.py
@@ -26,7 +26,7 @@ from functools import wraps
 from urllib import quote as _quote
 from urlparse import urlparse, urlunparse
 from httplib import HTTPException, HTTPConnection, HTTPSConnection
-from time import sleep
+from time import sleep, time
 
 from swiftclient.exceptions import ClientException, InvalidHeadersException
 
@@ -1071,6 +1071,7 @@ class Connection(object):
         self.cacert = cacert
         self.insecure = insecure
         self.ssl_compression = ssl_compression
+        self.auth_end_time = 0
 
     def close(self):
         if self.http_conn and type(self.http_conn) is tuple\
@@ -1112,6 +1113,7 @@ class Connection(object):
                 if not self.url or not self.token:
                     self.url, self.token = self.get_auth()
                     self.http_conn = None
+                self.auth_end_time = time()
                 if not self.http_conn:
                     self.http_conn = self.http_connection()
                 kwargs['http_conn'] = self.http_conn