diff --git a/postfix/RELEASE_NOTES b/postfix/RELEASE_NOTES
index a3906991d..8a7ad29d4 100644
--- a/postfix/RELEASE_NOTES
+++ b/postfix/RELEASE_NOTES
@@ -116,6 +116,18 @@ recipient slots to refill at a time) and default_recipient_refill_delay
(how long to wait between refill operations). These two parameters
act as defaults for optional per-transport settings.
+Better support for queue file systems on file servers with drifting
+clocks. Clock skew can be a problem, because Postfix does not deliver
+mail until the local clock catches up with the queue file's last
+modification time stamp. On systems with usable futimes() or
+equivalent (Solaris, *BSD, MacOS, but not Linux), Postfix now always
+explicitly sets the queue file last modification time stamps while
+creating a queue file. On systems without usable futimes() (Linux,
+and ancient versions of Solaris, SunOS and *BSD) Postfix keeps using
+the slower utime() system call to update queue file time stamps
+when the file system clock is off with respect to the local system
+clock, and logs a warning.
+
Incompatible changes with Postfix snapshot 20061006
===================================================
diff --git a/postfix/mantools/hchangered b/postfix/mantools/hchangered
new file mode 100755
index 000000000..044f2dbae
--- /dev/null
+++ b/postfix/mantools/hchangered
@@ -0,0 +1,40 @@
+#!/bin/sh
+
+# Usage: hchangered oldfile newfile
+
+# hchangered - crude tool to red-color changes in HTML text. Text is
+# also underlined so it shows on monochrome printers.
+
+# Bugs: does not red-color text inside tables. Fascist software may
+# complain about tags being out of order.
+
+diff -e $1 $2 | (sed -n -e '
+/[ac]$/{
+ p
+ a\
+
+: loop
+ n
+ /^\.$/b done1
+ p
+ b loop
+: done1
+ a\
+\
+.
+ b
+}
+/d$/{
+ a\
+ i\
+[DELETED]\
+.
+ p
+ b
+}
+'; echo '1,$p') | ed - $1 | perl -e '
+$buf = join("", );
+$buf =~ s/pre>\s+\s+<\/pre/font><\/pre/g;
+print $buf;
+'
diff --git a/postfix/src/cleanup/cleanup_milter.c b/postfix/src/cleanup/cleanup_milter.c
index 7117808d0..2212604a3 100644
--- a/postfix/src/cleanup/cleanup_milter.c
+++ b/postfix/src/cleanup/cleanup_milter.c
@@ -902,9 +902,9 @@ static const char *cleanup_del_header(void *context, ssize_t index,
/*
* Overwrite the beginning of the header record with a pointer to the
- * information that follows the header. We can't simply use
- * cleanup_out_header() with a special record type, because there may be
- * a PTR record in the middle of a multi-line header.
+ * information that follows the header. We can't simply overwrite the
+ * header with cleanup_out_header() and a special record type, because
+ * there may be a PTR record in the middle of a multi-line header.
*/
if (header_offset > 0) {
if ((next_offset = cleanup_find_header_end(state, rec_buf, last_type)) < 0)
diff --git a/postfix/src/global/mail_version.h b/postfix/src/global/mail_version.h
index fba085290..82b46d828 100644
--- a/postfix/src/global/mail_version.h
+++ b/postfix/src/global/mail_version.h
@@ -20,7 +20,7 @@
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
-#define MAIL_RELEASE_DATE "20070121"
+#define MAIL_RELEASE_DATE "20070122"
#define MAIL_VERSION_NUMBER "2.4"
#ifdef SNAPSHOT
diff --git a/postfix/src/util/stream_send_fd.c b/postfix/src/util/stream_send_fd.c
index 77c5d75b3..a056bb0a8 100644
--- a/postfix/src/util/stream_send_fd.c
+++ b/postfix/src/util/stream_send_fd.c
@@ -58,7 +58,7 @@ int stream_send_fd(int fd, int sendfd)
#ifdef STREAM_CONNECTIONS
if (ioctl(fd, I_SENDFD, sendfd) < 0)
- msg_fatal("%s: send file descriptor %d: %m", sendfd, myname);
+ msg_fatal("%s: send file descriptor %d: %m", myname, sendfd);
return (0);
#else
msg_fatal("stream connections are not implemented");