diff --git a/src/common/slurm_accounting_storage.c b/src/common/slurm_accounting_storage.c
index 78e955c283e50a7a5161e3a5ff101a85f2054b64..9867edc7c886d034ba81c740841a08c71baa0f56 100644
--- a/src/common/slurm_accounting_storage.c
+++ b/src/common/slurm_accounting_storage.c
@@ -458,6 +458,16 @@ extern void pack_acct_user_rec(void *in, Buf buffer)
 	uint32_t count = 0;
 	acct_coord_rec_t *coord = NULL;
 
+	if(!object) {
+		pack16(0, buffer);
+		pack32(0, buffer);
+		packstr("", buffer);
+		pack16(0, buffer);
+		packstr("", buffer);
+		pack32(0, buffer);
+		return;
+	}
+ 
 	pack16((uint16_t)object->admin_level, buffer);
 	if(object->coord_accts)
 		count = list_count(object->coord_accts);
@@ -512,6 +522,15 @@ extern void pack_acct_account_rec(void *in, Buf buffer)
 	uint32_t count = 0;
 	acct_account_rec_t *object = (acct_account_rec_t *)in;
 
+	if(!object) {
+		pack32(0, buffer);
+		packstr("", buffer);
+		pack16(0, buffer);
+		packstr("", buffer);
+		packstr("", buffer);
+		return;
+	}
+ 
 	if(object->coordinators)
 		count = list_count(object->coordinators);
 	
@@ -563,6 +582,12 @@ extern void pack_acct_coord_rec(void *in, Buf buffer)
 {
 	acct_coord_rec_t *object = (acct_coord_rec_t *)in;
 
+	if(!object) {
+		packstr("", buffer);
+		pack16(0, buffer);
+		return;
+	}
+
 	packstr(object->acct_name, buffer);
 	pack16(object->sub_acct, buffer);
 }
@@ -586,7 +611,17 @@ extern void pack_cluster_accounting_rec(void *in, Buf buffer)
 {
 	cluster_accounting_rec_t *object = (cluster_accounting_rec_t *)in;
 	
-	pack32(object->alloc_secs, buffer);
+	if(!object) {
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack_time(0, buffer);
+		pack32(0, buffer);
+		return;
+	}
+
+ 	pack32(object->alloc_secs, buffer);
 	pack32(object->cpu_count, buffer);
 	pack32(object->down_secs, buffer);
 	pack32(object->idle_secs, buffer);
@@ -622,6 +657,14 @@ extern void pack_acct_cluster_rec(void *in, Buf buffer)
 	uint32_t count = 0;
 	acct_cluster_rec_t *object = (acct_cluster_rec_t *)in;
 
+	if(!object) {
+		pack32(0, buffer);
+		packstr("", buffer);
+		packstr("", buffer);
+		packstr("", buffer);
+		return;
+	}
+ 
 	if(object->accounting_list)
 		count = list_count(object->accounting_list);
 
@@ -672,6 +715,12 @@ extern void pack_acct_accounting_rec(void *in, Buf buffer)
 {
 	acct_accounting_rec_t *object = (acct_accounting_rec_t *)in;
 	
+	if(!object) {
+		pack_time(0, buffer);
+		pack32(0, buffer);
+		return;
+	}
+
 	pack_time(object->period_start, buffer);
 	pack32(object->alloc_secs, buffer);
 }
@@ -700,6 +749,26 @@ extern void pack_acct_association_rec(void *in, Buf buffer)
 	uint32_t count = 0;
 	acct_association_rec_t *object = (acct_association_rec_t *)in;	
 	
+	if(!object) {
+		pack32(0, buffer);
+		packstr("", buffer);
+		packstr("", buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		packstr("", buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		packstr("", buffer);
+		return;
+	}
+ 
 	if(object->accounting_list)
 		count = list_count(object->accounting_list);
 
@@ -779,6 +848,14 @@ extern void pack_acct_user_cond(void *in, Buf buffer)
 	acct_user_cond_t *object = (acct_user_cond_t *)in;
 	uint32_t count = 0;
 
+	if(!object) {
+		pack16(0, buffer);
+		pack32(0, buffer);
+		pack16(0, buffer);
+		pack32(0, buffer);
+		return;
+	}
+ 
 	pack16((uint16_t)object->admin_level, buffer);
 
 	if(object->def_acct_list)
@@ -851,7 +928,14 @@ extern void pack_acct_account_cond(void *in, Buf buffer)
 	acct_account_cond_t *object = (acct_account_cond_t *)in;
 	uint32_t count = 0;
 
-	if(object->acct_list)
+	if(!object) {
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack16(0, buffer);
+		pack32(0, buffer);
+		return;
+	}
+ 	if(object->acct_list)
 		count = list_count(object->acct_list);
 
 	pack32(count, buffer);
@@ -939,6 +1023,12 @@ extern void pack_acct_cluster_cond(void *in, Buf buffer)
 	acct_cluster_cond_t *object = (acct_cluster_cond_t *)in;
 	uint32_t count = 0;
 
+	if(!object) {
+		packstr("", buffer);
+		pack32(0, buffer);
+		return;
+	}
+ 
 	if(object->cluster_list)
 		count = list_count(object->cluster_list);
 	
@@ -984,6 +1074,20 @@ extern void pack_acct_association_cond(void *in, Buf buffer)
 	ListIterator itr = NULL;
 	acct_association_cond_t *object = (acct_association_cond_t *)in;
 
+	if(!object) {
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		packstr("", buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		pack32(0, buffer);
+		return;
+	}
+
 	if(object->acct_list)
 		count = list_count(object->acct_list);