@@ -181,7 +181,6 @@ Client.prototype.put = function(filename, headers){
 Client.prototype.putFile = function(src, filename, headers, fn){
   var self = this;
   var emitter = new Emitter;
-  var written = 0;
 
   if ('function' == typeof headers) {
     fn = headers;
@@ -205,16 +204,9 @@ Client.prototype.putFile = function(src, filename, headers, fn){
     }, headers);
 
     var stream = fs.createReadStream(src);
-    self.putStream(stream, filename, headers, fn);
-
-    stream.on('data', function(chunk){
-      written += chunk.length;
-      emitter.emit('progress', {
-        percent: written / stat.size * 100 | 0,
-        total: stat.size,
-        written: written
-      });
-    });
+    var req = self.putStream(stream, filename, headers, fn);
+
+    req.on('progress', emitter.emit.bind(emitter, 'progress'));
   });
 
   return emitter;