diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c
index 544bde3370088e4d655d09e383b73c0b44105809..51a84e74f66c45d3bcc197b02e27843544b178f0 100644
--- a/src/slurmctld/controller.c
+++ b/src/slurmctld/controller.c
@@ -229,13 +229,17 @@ int main(int argc, char *argv[])
 		    (strcmp(node_name,
 			    slurmctld_conf.backup_controller) == 0))
 			_run_backup();
-		else if (strcmp(node_name, slurmctld_conf.control_machine))
-			fatal
+		else if (slurmctld_conf.control_machine &&
+			 (strcmp(node_name, slurmctld_conf.control_machine) 
+			  == 0))
+			(void) _shutdown_backup_controller();
+		else {
+			error
 			    ("this host (%s) not valid controller (%s or %s)",
 			     node_name, slurmctld_conf.control_machine,
 			     slurmctld_conf.backup_controller);
-		else		/* primary tells secondary to shutdown */
-			(void) _shutdown_backup_controller();
+			exit(0);
+		}
 
 		/*
 		 * create attached thread for signal handling
diff --git a/src/slurmd/slurmd.c b/src/slurmd/slurmd.c
index 4221e394ca77685dd9af3dde2aa1c7d0139878cb..d4cacb95692105f76747b524e5e679e871f5ce5a 100644
--- a/src/slurmd/slurmd.c
+++ b/src/slurmd/slurmd.c
@@ -409,6 +409,12 @@ _read_config()
 	_free_and_set(&conf->pidfile,    
 		      xstrdup(slurmctld_conf.slurmd_pidfile));
 	slurm_mutex_unlock(&conf->config_mutex);
+
+	if ((slurmctld_conf.control_addr == NULL) || 
+	    (slurmctld_conf.slurmctld_port == 0)) {
+		error("Unable to establish control machine or port");
+		exit(1);
+	}
 }
 
 static void