--- a/src/index/indexer.cpp
+++ b/src/index/indexer.cpp
@@ -1,5 +1,5 @@
 #ifndef lint
-static char rcsid[] = "@(#$Id: indexer.cpp,v 1.11 2005-04-06 10:20:11 dockes Exp $ (C) 2004 J.F.Dockes";
+static char rcsid[] = "@(#$Id: indexer.cpp,v 1.12 2005-10-15 12:18:04 dockes Exp $ (C) 2004 J.F.Dockes";
 #endif
 #include <stdio.h>
 #include <sys/stat.h>
@@ -172,10 +172,14 @@
 	if (fis == FileInterner::FIError)
 	    break;
 
-	// Set up common fields:
-	char ascdate[20];
-	sprintf(ascdate, "%ld", long(stp->st_ctime));
-	doc.mtime = ascdate;
+	// Set the date if this was not done in the document handler
+	// (ie: date from Date: mail header).
+	if (doc.mtime.empty()) {
+	    char ascdate[20];
+	    sprintf(ascdate, "%ld", long(stp->st_ctime));
+	    doc.mtime = ascdate;
+	}
+	// Internal access path for multi-document files
 	doc.ipath = ipath;
 
 	// Do database-specific work to update document data