--- curs_lib.c.bak	2008-01-18 14:52:55.000000000 +0100
+++ curs_lib.c	2008-01-18 15:19:43.000000000 +0100
@@ -377,7 +377,8 @@
     dprint (1, (debugfile, "gettimeofday failed: %d\n", errno));
   /* if timestamp is 0 no time-based suppression is done */
   if (TimeInc)
-    progress->timestamp = tv.tv_sec * 1000 + tv.tv_usec / 1000;
+    progress->timestamp = (unsigned int) tv.tv_sec * 1000
+      + (unsigned int) (tv.tv_usec / 1000);
   mutt_progress_update (progress, 0, 0);
 }
 
@@ -400,7 +401,8 @@
 
   /* skip refresh if not enough time has passed */
   if (update && progress->timestamp && !gettimeofday (&tv, NULL)) {
-    now = tv.tv_sec * 1000 + tv.tv_usec / 1000;
+    now = (unsigned int) tv.tv_sec * 1000
+      + (unsigned int) (tv.tv_usec / 1000);
     if (now && now - progress->timestamp < TimeInc)
       update = 0;
   }
