diff --git a/src/smap/grid_functions.c b/src/smap/grid_functions.c
index 234651ec079e64cdcc8798a7cb63c1043a9e70e5..14b21de84882588c618309b1a85b84bc0082c5b6 100644
--- a/src/smap/grid_functions.c
+++ b/src/smap/grid_functions.c
@@ -126,6 +126,9 @@ extern void set_grid_inx(int start, int end, int count)
 {
 	int i;
 
+	if (!smap_system_ptr || !smap_system_ptr->grid)
+		return;
+
 	for (i = 0; i < smap_system_ptr->node_cnt; i++) {
 		if ((smap_system_ptr->grid[i]->index < start) ||
 		    (smap_system_ptr->grid[i]->index > end))
@@ -144,6 +147,9 @@ extern int set_grid_bg(int *start, int *end, int count, int set)
 {
 	int node_cnt = 0, i, j;
 
+	if (!smap_system_ptr || !smap_system_ptr->grid)
+		return 0;
+
 	for (i = 0; i < smap_system_ptr->node_cnt; i++) {
 		for (j = 0; j < params.cluster_dims; j++) {
 			if ((smap_system_ptr->grid[i]->coord[j] < start[j]) ||
@@ -329,6 +335,9 @@ extern void print_grid(void)
 {
 	int i;
 
+	if (!smap_system_ptr || !smap_system_ptr->grid)
+		return;
+
 	for (i = 0; i < smap_system_ptr->node_cnt; i++) {
 		if (smap_system_ptr->grid[i]->color)
 			init_pair(smap_system_ptr->grid[i]->color,