diff -urN ../nagios.orig/base/nagios.c ./base/nagios.c
--- ../nagios.orig/base/nagios.c	Wed Jan 19 12:27:24 2005
+++ ./base/nagios.c	Wed Jan 19 14:24:34 2005
@@ -149,7 +149,7 @@
 int             test_scheduling=FALSE;
 
 int             daemon_mode=FALSE;
-int             daemon_dumps_core=FALSE;
+int             daemon_dumps_core=TRUE;
 
 int             ipc_pipe[2];
 
diff -urN ../nagios.orig/base/utils.c ./base/utils.c
--- ../nagios.orig/base/utils.c	Wed Jan 19 12:27:24 2005
+++ ./base/utils.c	Wed Jan 19 14:56:22 2005
@@ -3235,7 +3235,10 @@
 	signal(SIGQUIT,sighandler);
 	signal(SIGTERM,sighandler);
 	signal(SIGHUP,sighandler);
-	signal(SIGSEGV,sighandler);
+#if !defined(DEBUG0) && !defined(DEBUG1) && !defined(DEBUG2) && !defined(DEBUG3) && !defined(DEBUG4) && !defined(DEBUG5)
+	if(daemon_dumps_core==FALSE || daemon_mode==FALSE)
+		signal(SIGSEGV,sighandler);
+#endif
 
 #ifdef DEBUG0
 	printf("setup_sighandler() end\n");
@@ -3380,7 +3383,11 @@
 	struct rlimit limit;
 #endif
 
-	chdir("/");		/* change working directory */
+	/* change working directory. scuttle home if we're dumping core */
+	if(daemon_dumps_core==TRUE)
+		chdir(getenv("HOME"));
+	else
+		chdir("/");
 
 	umask(S_IWGRP|S_IWOTH);
 
