diff --git a/src/smap/configure_functions.c b/src/smap/configure_functions.c
index 91ec002ecf6b58afbf2aa7bb60c44480325459f0..f5825fb42ad9d7ba0799c96d02bb04c53bd70eb1 100644
--- a/src/smap/configure_functions.c
+++ b/src/smap/configure_functions.c
@@ -1375,6 +1375,8 @@ void get_command(void)
 		xfree(cluster_name);
 	}
 
+	bg_configure_ba_setup_wires();
+
 	color_count = 0;
 
 	allocated_blocks = list_create(_destroy_allocated_block);
diff --git a/src/smap/opts.c b/src/smap/opts.c
index 6402a04695434714240366b15c4fafaa375a7e94..21d04e85aad69f60dcd8ffce1b9371fcdc836b77 100644
--- a/src/smap/opts.c
+++ b/src/smap/opts.c
@@ -222,6 +222,9 @@ extern char *resolve_mp(char *desc)
 		goto fini;
 	}
 
+#ifdef HAVE_BG
+	bg_configure_ba_setup_wires();
+#endif
 	i = strlen(desc) - params.cluster_dims;
 	if (i < 0) {
 		ret_str = xstrdup_printf("Must enter %d coords to resolve.\n",
diff --git a/src/smap/smap.c b/src/smap/smap.c
index 3f78181b25518d021374406ccaf4561eb5a5f944..5539452b3504f04de1f11985b55a960a9258f485 100644
--- a/src/smap/smap.c
+++ b/src/smap/smap.c
@@ -90,9 +90,6 @@ int main(int argc, char *argv[])
 	int end = 0;
 	int i;
 	int rc;
-#ifdef HAVE_BG
-	int mapset = 0;
-#endif
 
 	log_init(xbasename(argv[0]), opts, SYSLOG_FACILITY_DAEMON, NULL);
 	parse_command_line(argc, argv);
@@ -134,10 +131,6 @@ int main(int argc, char *argv[])
 			printf("%s", ret_str);
 			xfree(ret_str);
 		}
-#ifdef HAVE_BG
-		if (!mapset)
-			mapset = 1;
-#endif
 		_smap_exit(0);	/* Calls exit(), no return */
 	}
 	if (!params.commandline) {
@@ -232,10 +225,7 @@ redraw:
 			break;
 		case COMMANDS:
 #ifdef HAVE_BG
-			if (!mapset) {
-				mapset = 1;
-				wclear(text_win);
-			}
+			wclear(text_win);
 			get_command();
 #else
 			error("Must be on a real BG SYSTEM to "