When building Mutt with -ftrapv in CFLAGS and running it with a muttrc file containing:
set time_inc=250
Mutt aborts at this line:
if (TimeInc)
progress->timestamp = tv.tv_sec * 1000 + tv.tv_usec / 1000;
In gdb, print tv.tv_sec outputs 1200664610. My original time_inc patch didn't have such a problem since I didn't use timeval, but I think the bug can easily be fixed by adding casts to unsigned int since only relative timestamps matter (see attached patch). The
if (update && progress->timestamp && !gettimeofday (&tv, NULL)) {
can be wrong as progress->timestamp can be 0 due to the wrapping, but I don't think this is a real problem in practice.