anchor.diff:      var files = dt.files;
       if(files == null || files.length <= 0) { return; }
   
  -    FileUploader.files = files;
  +    FileUploader.files = new Array();
   
       if(FileEditor) {
         FileEditor.startUpload(this);
         FileEditor.hideDetails();
       }
   
  -    for(var i=0; i<FileUploader.files.length; i++) {
  -      FileUploader.files[i].reader = new FileReader();
  -      FileUploader.files[i].content = null;
  -      FileUploader.files[i].error = null;
  -      FileUploader.files[i].progress = {loaded: 0, percentage: 0, total: 0};
  +    for(var i=0; i<files.length; i++) {
  +      var file = files[i];
  +      file.reader = new FileReader();
  +      file.content = null;
  +      file.error = null;
  +      file.progress = {loaded: 0, percentage: 0, total: 0};
  +      FileUploader.files.push(file);
       }
   
       FileUploader.read();
  
positive.code:     for(var i=0; i<FileUploader.files.length; i++) {
        var file = FileUploader.files[i];
        (function(file) {
          file.reader.addEventListener('loadend', function(e) { FileUploader.loadEnd(file, e); }, false);
          file.reader.addEventListener('error', function(e) { FileUploader.loadError(file, e); }, false);
          file.reader.addEventListener('progress', function(e) { FileUploader.loadProgress(file, e); }, false);
          file.reader.readAsBinaryString(file);
         })(file);
      }
  
negative.code:     }
  
      var numErrors = 0;
      var totalFiles = FileUploader.files.length;
      while(FileUploader.files.length > 0) {
        var file = FileUploader.files.pop();
        if(file.error) { numErrors++; continue; }
  
        body += '--' + boundary + "\r\n";
  