diff --git a/src/plugins/accounting_storage/mysql/as_mysql_cluster.c b/src/plugins/accounting_storage/mysql/as_mysql_cluster.c
index fbeb1d8db53182784dd1750c5c2894a00d91d9e7..ae9c24923a03b4dfe46b37a2a0513a447f753cbc 100644
--- a/src/plugins/accounting_storage/mysql/as_mysql_cluster.c
+++ b/src/plugins/accounting_storage/mysql/as_mysql_cluster.c
@@ -108,7 +108,7 @@ static int _setup_cluster_cond_limits(slurmdb_cluster_cond_t *cluster_cond,
 			   cluster_cond->classification);
 	}
 
-	if(cluster_cond->flags) {
+	if(cluster_cond->flags != NO_VAL) {
 		xstrfmtcat(*extra, " && (flags & %u)",
 			   cluster_cond->flags);
 	}
@@ -158,7 +158,8 @@ extern int as_mysql_add_clusters(mysql_conn_t *mysql_conn, uint32_t uid,
 			   "name, classification) "
 			   "values (%d, %d, '%s', %u) "
 			   "on duplicate key update deleted=0, mod_time=%d, "
-			   "control_host='', control_port=0, classification=%u",
+			   "control_host='', control_port=0, "
+			   "classification=%u, flags=0",
 			   cluster_table,
 			   now, now, object->name, object->classification,
 			   now, object->classification);
@@ -1114,7 +1115,7 @@ extern int as_mysql_register_ctld(mysql_conn_t *mysql_conn,
 	query = xstrdup_printf(
 		"update %s set deleted=0, mod_time=%d, "
 		"control_host='%s', control_port=%u, rpc_version=%d, "
-		"dimensions=%d, flags=%d, plugin_id_select=%d where name='%s';",
+		"dimensions=%d, flags=%u, plugin_id_select=%d where name='%s';",
 		cluster_table, now, address, port, SLURMDBD_VERSION,
 		SYSTEM_DIMENSIONS, flags, select_get_plugin_id(), cluster);
 	xstrfmtcat(query,
diff --git a/src/sacctmgr/account_functions.c b/src/sacctmgr/account_functions.c
index a2bdbb0a6396fba26f77b71014924e6753d3b204..515febcb686af3862852e2dba1ab5c915c55e0b3 100644
--- a/src/sacctmgr/account_functions.c
+++ b/src/sacctmgr/account_functions.c
@@ -673,7 +673,7 @@ extern int sacctmgr_add_account(int argc, char *argv[])
 		List temp_list = NULL;
 		slurmdb_cluster_cond_t cluster_cond;
 
-		memset(&cluster_cond, 0, sizeof(slurmdb_cluster_cond_t));
+		slurmdb_init_cluster_cond(&cluster_cond);
 		cluster_cond.cluster_list = cluster_list;
 
 		temp_list = acct_storage_g_get_clusters(db_conn, my_uid,
diff --git a/src/sacctmgr/cluster_functions.c b/src/sacctmgr/cluster_functions.c
index bf552d5cee9be2260a14ed49a5c57a296f013b48..b8eb90924288cc3b1129b6b3efcc0683b2849bac 100644
--- a/src/sacctmgr/cluster_functions.c
+++ b/src/sacctmgr/cluster_functions.c
@@ -382,6 +382,7 @@ extern int sacctmgr_add_cluster(int argc, char *argv[])
 			continue;
 		}
 		cluster = xmalloc(sizeof(slurmdb_cluster_rec_t));
+		slurmdb_init_cluster_rec(cluster);
 
 		list_append(cluster_list, cluster);
 		cluster->flags = NO_VAL;
@@ -506,7 +507,7 @@ extern int sacctmgr_list_cluster(int argc, char *argv[])
 		PRINT_SELECT,
 	};
 
-
+	slurmdb_init_cluster_cond(cluster_cond);
 	cluster_cond->cluster_list = list_create(slurm_destroy_char);
 	for (i=0; i<argc; i++) {
 		int command_len = strlen(argv[i]);
@@ -1080,6 +1081,7 @@ extern int sacctmgr_delete_cluster(int argc, char *argv[])
 	List ret_list = NULL;
 	int cond_set = 0, prev_set;
 
+	slurmdb_init_cluster_cond(cluster_cond);
 	cluster_cond->cluster_list = list_create(slurm_destroy_char);
 
 	for (i=0; i<argc; i++) {
diff --git a/src/sacctmgr/common.c b/src/sacctmgr/common.c
index ad07eb12bf4d7ab93018b3b3356926312c75012b..65947454cb491847b1bdc11be62ebf13dfbf887a 100644
--- a/src/sacctmgr/common.c
+++ b/src/sacctmgr/common.c
@@ -366,7 +366,7 @@ extern slurmdb_cluster_rec_t *sacctmgr_find_cluster(char *name)
 	if(!name)
 		return NULL;
 
-	memset(&cluster_cond, 0, sizeof(slurmdb_cluster_cond_t));
+	slurmdb_init_cluster_cond(&cluster_cond);
 	cluster_cond.cluster_list = list_create(NULL);
 	list_append(cluster_cond.cluster_list, name);
 
diff --git a/src/sacctmgr/file_functions.c b/src/sacctmgr/file_functions.c
index 9184d35029fef3a1548afca4f6b6fa1ad66d0b5c..6d5061eae364bb1dc94eacbae3811cabd9b39b3d 100644
--- a/src/sacctmgr/file_functions.c
+++ b/src/sacctmgr/file_functions.c
@@ -1192,10 +1192,8 @@ static int _mod_cluster(sacctmgr_file_opts_t *file_opts,
 	slurmdb_cluster_rec_t mod_cluster;
 	slurmdb_cluster_cond_t cluster_cond;
 
-	memset(&mod_cluster, 0, sizeof(slurmdb_cluster_rec_t));
-	memset(&cluster_cond, 0, sizeof(slurmdb_cluster_cond_t));
-
-	mod_cluster.flags = NO_VAL;
+	slurmdb_init_cluster_rec(&mod_cluster);
+	slurmdb_init_cluster_cond(&cluster_cond);
 
 	if(file_opts->classification
 	   && (file_opts->classification != cluster->classification)) {
@@ -2219,8 +2217,7 @@ extern void load_sacctmgr_cfg_file (int argc, char *argv[])
 					break;
 				}
 
-				memset(&cluster_cond, 0,
-				       sizeof(slurmdb_cluster_cond_t));
+				slurmdb_init_cluster_cond(&cluster_cond);
 				cluster_cond.cluster_list = list_create(NULL);
 				list_append(cluster_cond.cluster_list,
 					    cluster_name);
@@ -2256,6 +2253,7 @@ extern void load_sacctmgr_cfg_file (int argc, char *argv[])
 
 				cluster = xmalloc(
 					sizeof(slurmdb_cluster_rec_t));
+				slurmdb_init_cluster_rec(cluster);
 				list_append(cluster_list, cluster);
 				cluster->name = xstrdup(cluster_name);
 				if(file_opts->classification) {
diff --git a/src/sacctmgr/user_functions.c b/src/sacctmgr/user_functions.c
index a066e59101a6b36b21605ec5b03d01044eaa048e..6da9af8bb91252c8ada8c574647baaf862b9da1e 100644
--- a/src/sacctmgr/user_functions.c
+++ b/src/sacctmgr/user_functions.c
@@ -956,7 +956,7 @@ extern int sacctmgr_add_user(int argc, char *argv[])
 		List temp_list = NULL;
 		slurmdb_cluster_cond_t cluster_cond;
 
-		memset(&cluster_cond, 0, sizeof(slurmdb_cluster_cond_t));
+		slurmdb_init_cluster_cond(&cluster_cond);
 		cluster_cond.cluster_list = assoc_cond->cluster_list;
 
 		temp_list = acct_storage_g_get_clusters(db_conn, my_uid,