--- /dev/null
+diff -Nru mutt-1.4.1.orig/doc/mutt.man mutt-1.4.1/doc/mutt.man
+--- mutt-1.4.1.orig/doc/mutt.man Wed Jul 24 10:41:31 2002
++++ mutt-1.4.1/doc/mutt.man Wed Oct 8 20:11:11 2003
+@@ -122,13 +122,13 @@
+ Specifies the editor to use when composing messages.
+ .SH FILES
+ .PP
+-.IP "~/.muttrc or ~/.mutt/muttrc"
++.IP "$HOME_ETC/.muttrc" or "$HOME_ETC/.mutt/muttrc" or "~/.muttrc" or "~/.mutt/muttrc"
+ User configuration file.
+ .IP "/etc/Muttrc"
+ System-wide configuration file.
+ .IP "/tmp/muttXXXXXX"
+ Temporary files created by Mutt.
+-.IP "~/.mailcap"
++.IP "$HOME_ETC/.mailcap" or "~/.mailcap"
+ User definition for handling non-text MIME types.
+ .IP "/etc/mailcap"
+ System definition for handling non-text MIME types.
+diff -Nru mutt-1.4.1.orig/init.c mutt-1.4.1/init.c
+--- mutt-1.4.1.orig/init.c Wed Oct 8 19:33:11 2003
++++ mutt-1.4.1/init.c Wed Oct 8 20:10:37 2003
+@@ -1811,6 +1811,12 @@
+ else
+ {
+ /* Default search path from RFC1524 */
++ if (getenv("HOME_ETC")) {
++ char buf[STRING];
++
++ snprintf(buf, sizeof(buf), "%s/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR "/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap", getenv("HOME_ETC"));
++ MailcapPath = safe_strdup (buf);
++ } else
+ MailcapPath = safe_strdup ("~/.mailcap:" PKGDATADIR "/mailcap:" SYSCONFDIR "/mailcap:/etc/mailcap:/usr/etc/mailcap:/usr/local/etc/mailcap");
+ }
+
+@@ -1892,18 +1898,38 @@
+
+ if (!Muttrc)
+ {
++ for (;;) {
+ snprintf (buffer, sizeof(buffer), "%s/%s/muttrc-%s", NONULL(Homedir), getenv ("CONFIG_DIR"), MUTT_VERSION);
+ if (access(buffer, F_OK) == -1)
+ snprintf (buffer, sizeof(buffer), "%s/%s/muttrc", NONULL(Homedir), getenv ("CONFIG_DIR"));
+- if (access(buffer, F_OK) == -1)
+- snprintf (buffer, sizeof(buffer), "%s/.muttrc-%s", NONULL(Homedir), MUTT_VERSION);
+- if (access(buffer, F_OK) == -1)
+- snprintf (buffer, sizeof(buffer), "%s/.muttrc", NONULL(Homedir));
+- if (access(buffer, F_OK) == -1)
+- snprintf (buffer, sizeof (buffer), "%s/.mutt/muttrc-%s", NONULL(Homedir), MUTT_VERSION);
+- if (access(buffer, F_OK) == -1)
+- snprintf (buffer, sizeof (buffer), "%s/.mutt/muttrc", NONULL(Homedir));
+-
++ else break;
++ if (getenv("HOME_ETC")) {
++ if (access(buffer, F_OK) == -1)
++ snprintf(buffer, sizeof(buffer), "%s/.muttrc-%s", getenv("HOME_ETC"), MUTT_VERSION);
++ else break;
++ if (access(buffer, F_OK) == -1)
++ snprintf (buffer, sizeof(buffer), "%s/.muttrc", getenv("HOME_ETC"));
++ else break;
++ if (access(buffer, F_OK) == -1)
++ snprintf (buffer, sizeof (buffer), "%s/.mutt/muttrc-%s", getenv("HOME_ETC"), MUTT_VERSION);
++ else break;
++ if (access(buffer, F_OK) == -1)
++ snprintf (buffer, sizeof (buffer), "%s/.mutt/muttrc", getenv("HOME_ETC"));
++ } else {
++ if (access(buffer, F_OK) == -1)
++ snprintf (buffer, sizeof(buffer), "%s/.muttrc-%s", NONULL(Homedir), MUTT_VERSION);
++ else break;
++ if (access(buffer, F_OK) == -1)
++ snprintf (buffer, sizeof(buffer), "%s/.muttrc", NONULL(Homedir));
++ else break;
++ if (access(buffer, F_OK) == -1)
++ snprintf (buffer, sizeof (buffer), "%s/.mutt/muttrc-%s", NONULL(Homedir), MUTT_VERSION);
++ else break;
++ if (access(buffer, F_OK) == -1)
++ snprintf (buffer, sizeof (buffer), "%s/.mutt/muttrc", NONULL(Homedir));
++ }
++ break;
++ }
+ default_rc = 1;
+ Muttrc = safe_strdup (buffer);
+ }
+diff -Nru mutt-1.4.1.orig/muttbug.sh.in mutt-1.4.1/muttbug.sh.in
+--- mutt-1.4.1.orig/muttbug.sh.in Wed Oct 8 19:33:11 2003
++++ mutt-1.4.1/muttbug.sh.in Wed Oct 8 20:19:05 2003
+@@ -244,13 +244,21 @@
+ if test "$personal" = "yes" ; then
+ CANDIDATES=".muttrc-${MUTTVERSION} .muttrc .mutt/muttrc-${MUTTVERSION} .mutt/muttrc"
+ MATCHED="none"
++ if test -n "$HOME_ETC" ; then
++ for f in $CANDIDATES; do
++ if test -f "${HOME_ETC}/$f" ; then
++ MATCHED="${HOME_ETC}/$f"
++ break
++ fi
++ done
++ else
+ for f in $CANDIDATES; do
+ if test -f "${HOME}/$f" ; then
+ MATCHED="${HOME}/$f"
+ break
+ fi
+ done
+-
++ fi
+ if test "$MATCHED" = "none" ; then
+ echo "Warning: Can't find your personal .muttrc." >&2
+ else
+diff -Nru mutt-1.4.1.orig/sendlib.c mutt-1.4.1/sendlib.c
+--- mutt-1.4.1.orig/sendlib.c Wed Oct 8 19:33:11 2003
++++ mutt-1.4.1/sendlib.c Wed Oct 8 19:57:55 2003
+@@ -958,7 +958,8 @@
+
+ /* Given a file with path ``s'', see if there is a registered MIME type.
+ * returns the major MIME type, and copies the subtype to ``d''. First look
+- * for ~/.mime.types, then look in a system mime.types if we can find one.
++ * for either $HOME_ETC/.mime.types or ~/.mime.types, then look in a system
++ * mime.types if we can find one.
+ * The longest match is used so that we can match `ps.gz' when `gz' also
+ * exists.
+ */
+@@ -989,7 +990,9 @@
+ switch (count)
+ {
+ case 0:
+- snprintf (buf, sizeof (buf), "%s/.mime.types", NONULL(Homedir));
++ if (getenv("HOME_ETC"))
++ snprintf (buf, sizeof (buf), "%s/.mime.types", getenv("HOME_ETC"));
++ else snprintf (buf, sizeof (buf), "%s/.mime.types", NONULL(Homedir));
+ break;
+ case 1:
+ strfcpy (buf, SYSCONFDIR"/mime.types", sizeof(buf));