rem: percent = parseInt( (aCurTotalProgress*100)/aMaxTotalProgress + .5 ); 
add: percent = Math.round( (aCurTotalProgress*100)/aMaxTotalProgress ); 
context:     onProgressChange: function(aWebProgress, aRequest, aCurSelfProgress, aMaxSelfProgress, aCurTotalProgress, aMaxTotalProgress)    {      // Calculate percentage.      var percent;      if ( aMaxTotalProgress > 0 )       {        percent = parseInt( (aCurTotalProgress*100)/aMaxTotalProgress + .5 );        if ( percent > 100 )          percent = 100;                dialog.progress.removeAttribute( "mode");                // Advance progress meter.        dialog.progress.setAttribute( "value", percent );        // Update percentage label on progress meter.        var percentMsg = getString( "progressText" );        percentMsg = replaceInsert( percentMsg, 1, percent );        dialog.progressText.setAttribute("value", percentMsg);      }       else       {        // Progress meter should be barber-pole in this case.        dialog.progress.setAttribute( "mode", "undetermined" );        // Update percentage label on progress meter.        dialog.progressText.setAttribute("value", "");      }    },
meta: 8395	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/8395/4a2c7fb52a88b3854c6542ff6cf390aa1ce2b4e4/sendProgress.js/clean/mailnews/compose/resources/content/sendProgress.js