Index: lib/progress.c
===================================================================
RCS file: /cvsroot/curl/curl/lib/progress.c,v
retrieving revision 1.93
diff -u -p -r1.93 progress.c
--- lib/progress.c	31 Oct 2009 18:51:51 -0000	1.93
+++ lib/progress.c	4 Nov 2009 19:06:38 -0000
@@ -408,8 +408,10 @@ int Curl_pgrsUpdate(struct connectdata *
 
     /* Get the percentage of data transfered so far */
     if(total_expected_transfer > CURL_OFF_T_C(100))
-      total_percen = total_transfer /
-                    (total_expected_transfer/CURL_OFF_T_C(100));
+      total_percen = 100 * (total_transfer / CURL_OFF_T_C(100)) /
+        (total_expected_transfer/CURL_OFF_T_C(100));
+    else if(total_expected_transfer > 0)
+      total_percen = (total_transfer*100) / total_expected_transfer;
 
     fprintf(data->set.err,
             "\r"
