diff --git a/src/smap/grid_functions.c b/src/smap/grid_functions.c
index 5e51f11d241a6eb9066925fe28ad7502e6b74478..667467460785b5debac975cb644681f9d038a8f2 100644
--- a/src/smap/grid_functions.c
+++ b/src/smap/grid_functions.c
@@ -183,6 +183,11 @@ extern void init_grid(node_info_msg_t *node_info_ptr)
 			smap_system_ptr->node_cnt *= dim_size[i];
 		smap_system_ptr->grid = xmalloc(sizeof(smap_node_t *) *
 						smap_system_ptr->node_cnt);
+		/* We need to make sure we set up the wires if we
+		   don't have a node_info_ptr.
+		*/
+		bg_configure_ba_setup_wires();
+
 		_internal_setup_grid(0, coords);
 #endif
 	} else {
diff --git a/src/smap/smap.c b/src/smap/smap.c
index 8d86bebea7c072c2ade95cf00d0c947e93e60f07..b2e0ef04fb900fe02587efd3a3ead88a85174968 100644
--- a/src/smap/smap.c
+++ b/src/smap/smap.c
@@ -116,7 +116,7 @@ int main(int argc, char *argv[])
 				break;		/* just continue */
 			}
 			if (params.iterate == 0)
-				_smap_exit(1);	/* Calls exit(), no return */
+				exit(1);
 			sleep(10);	/* keep trying to reconnect */
 		}
 	}
@@ -359,7 +359,7 @@ static void _smap_exit(int rc)
 	free_grid();
 
 #ifdef HAVE_BG
-	ba_fini();
+	bg_configure_ba_fini();
 #endif
 
 #endif