diff --git a/src/slurmctld/read_config.c b/src/slurmctld/read_config.c
index ee3f8b8eaf5bf1a232750260a6032d97e86ba849..fdfdbec88cb78f56c37ccaac6382b69910538fce 100644
--- a/src/slurmctld/read_config.c
+++ b/src/slurmctld/read_config.c
@@ -130,8 +130,12 @@ main (int argc, char *argv[]) {
 
 	cycles = atoi (argv[2]);
 	printf ("let's reinitialize the database %d times.\n", cycles);
-	if (getrusage (RUSAGE_SELF, &begin_usage))
+	if (getrusage (RUSAGE_CHILDREN, &begin_usage))
 		printf ("ERROR %d from getrusage\n", errno);
+	else if (begin_usage.ru_maxrss == 0) {
+		printf ("WARNING: getrusage inopeative, run /bin/ps and check for memory leak\n");
+		sleep (5);
+	}
 	for (i = 0; i < cycles; i++) {
 		error_code = init_slurm_conf ();
 		if (error_code) {
@@ -147,12 +151,16 @@ main (int argc, char *argv[]) {
 			exit (error_code);
 		}		
 	}			
-	if (getrusage (RUSAGE_SELF, &end_usage))
+	if (getrusage (RUSAGE_CHILDREN, &end_usage))
 		printf ("error %d from getrusage\n", errno);
 	i = (int) (end_usage.ru_maxrss - begin_usage.ru_maxrss);
 	if (i > 0) {
-	    printf ("ERROR: Change in maximum RSS is %d.\n", i);
-	    error_code = ENOMEM;
+		printf ("ERROR: Change in maximum RSS is %d.\n", i);
+		error_code = ENOMEM;
+	}
+	else if (end_usage.ru_maxrss == 0) {
+		printf ("WARNING: getrusage inopeative, run /bin/ps and check for memory leak\n");
+		sleep (10);
 	}
 
 	exit (error_code);