--- a/headers.c
+++ b/headers.c
@@ -170,11 +170,11 @@
     {
 #ifdef HAVE_GETTIMEOFDAY
       if (gettimeofday (&tv, NULL) != -1) /* This shouldn't fail ... */
-	snprintf (buf, sizeof buf, "%ld.%ld.%d@%s", tv.tv_sec, tv.tv_usec,
+	      snprintf (buf, sizeof buf, "%lld.%lld.%d@%s", (long long)tv.tv_sec, (long long)tv.tv_usec,
 		  getpid (), message->session->localhost);
       else /* ... but if it does fall back to using time() */
 #endif
-      snprintf (buf, sizeof buf, "%ld.%d@%s", time (NULL),
+      snprintf (buf, sizeof buf, "%lld.%d@%s", (long long)time (NULL),
 		getpid (), message->session->localhost);
       message_id = buf;
     }
