diff -Nuprd fetchmail-6.2.4/fetchmail.c fetchmail-6.2.4-fix_config_reload/fetchmail.c --- fetchmail-6.2.4/fetchmail.c 2003-10-28 23:38:06.000000000 -0500 +++ fetchmail-6.2.4-fix_config_reload/fetchmail.c 2003-10-28 23:43:41.000000000 -0500 @@ -255,8 +255,13 @@ int main(int argc, char **argv) bkgd = (pid < 0); pid = bkgd ? -pid : pid; - /* avoid parsing the config file if all we're doing is killing a daemon */ - if (!quitmode && !pid) + /* + * Avoid parsing the config file if all we're doing is killing a daemon, + * unless this appears to be a self-restarted instance because we detected an + * "under-our-noses" configuration file change, in which case we definitely want + * to reload the config file. + */ + if ( ( !quitmode && !pid ) || pid == getpid() ) implicitmode = load_params(argc, argv, optind); else if (pid) implicitmode = 1;