diff --git a/openbsc/src/abis_nm.c b/openbsc/src/abis_nm.c
index 35ed8db..9a2fad7 100755
--- a/openbsc/src/abis_nm.c
+++ b/openbsc/src/abis_nm.c
@@ -1025,8 +1025,7 @@
 	int bts_type = mb->trx->bts->type;
 
 	switch (bts_type) {
-	case GSM_BTS_TYPE_NANOBTS_900:
-	case GSM_BTS_TYPE_NANOBTS_1800:
+	case GSM_BTS_TYPE_NANOBTS:
 		rc = abis_nm_rx_ipacc(mb);
 		break;
 	default:
diff --git a/openbsc/src/bsc_init.c b/openbsc/src/bsc_init.c
index c626415..78e9861 100644
--- a/openbsc/src/bsc_init.c
+++ b/openbsc/src/bsc_init.c
@@ -526,8 +526,7 @@
 					       sizeof(trx1_attr_radio));
 		}
 		break;
-	case GSM_BTS_TYPE_NANOBTS_900:
-	case GSM_BTS_TYPE_NANOBTS_1800:
+	case GSM_BTS_TYPE_NANOBTS:
 		trx->nominal_power = 20;
 	default:
 		break;
@@ -594,8 +593,7 @@
 	case GSM_BTS_TYPE_BS11:
 		bootstrap_om_bs11(bts);
 		break;
-	case GSM_BTS_TYPE_NANOBTS_900:
-	case GSM_BTS_TYPE_NANOBTS_1800:
+	case GSM_BTS_TYPE_NANOBTS:
 		bootstrap_om_nanobts(bts);
 		break;
 	default:
@@ -985,23 +983,27 @@
 
 static int bootstrap_bts(struct gsm_bts *bts)
 {
-	switch (bts->type) {
-	case GSM_BTS_TYPE_NANOBTS_1800:
+	switch (bts->band) {
+	case GSM_BAND_1800:
 		if (bts->c0->arfcn < 512 || bts->c0->arfcn > 885) {
 			fprintf(stderr, "GSM1800 channel must be between 512-885.\n");
 			return -EINVAL;
 		}
 		break;
-	case GSM_BTS_TYPE_BS11:
-	case GSM_BTS_TYPE_NANOBTS_900:
-		/* Assume we have a P-GSM900 here */
+	case GSM_BAND_1900:
+		if (bts->c0->arfcn < 512 || bts->c0->arfcn > 810) {
+			fprintf(stderr, "GSM1900 channel must be between 512-810.\n");
+			return -EINVAL;
+		}
+		break;
+	case GSM_BAND_900:
 		if (bts->c0->arfcn < 1 || bts->c0->arfcn > 124) {
 			fprintf(stderr, "GSM900 channel must be between 1-124.\n");
 			return -EINVAL;
 		}
 		break;
-	case GSM_BTS_TYPE_UNKNOWN:
-		fprintf(stderr, "Unknown BTS. Please specify\n");
+	default:
+		fprintf(stderr, "Unsupported frequency band.\n");
 		return -EINVAL;
 	}
 
diff --git a/openbsc/src/gsm_04_08.c b/openbsc/src/gsm_04_08.c
index bac920e..9ad9e15 100644
--- a/openbsc/src/gsm_04_08.c
+++ b/openbsc/src/gsm_04_08.c
@@ -1954,8 +1954,7 @@
 	}
 	
 	switch (bts->type) {
-	case GSM_BTS_TYPE_NANOBTS_900:
-	case GSM_BTS_TYPE_NANOBTS_1800:
+	case GSM_BTS_TYPE_NANOBTS:
 		if (!ipacc_rtp_direct) {
 			/* connect the TCH's to our RTP proxy */
 			rc = ipacc_connect_proxy_bind(lchan);
diff --git a/openbsc/src/gsm_data.c b/openbsc/src/gsm_data.c
index a50ba8c..6767c3f 100644
--- a/openbsc/src/gsm_data.c
+++ b/openbsc/src/gsm_data.c
@@ -232,8 +232,7 @@
 static const char *bts_types[] = {
 	[GSM_BTS_TYPE_UNKNOWN] = "unknown",
 	[GSM_BTS_TYPE_BS11] = "bs11",
-	[GSM_BTS_TYPE_NANOBTS_900] = "nanobts900",
-	[GSM_BTS_TYPE_NANOBTS_1800] = "nanobts1800",
+	[GSM_BTS_TYPE_NANOBTS] = "nanobts",
 };
 
 enum gsm_bts_type parse_btstype(const char *arg)
diff --git a/openbsc/src/ipaccess-config.c b/openbsc/src/ipaccess-config.c
index 7358d64..46043d5 100644
--- a/openbsc/src/ipaccess-config.c
+++ b/openbsc/src/ipaccess-config.c
@@ -348,7 +348,7 @@
 	if (!gsmnet)
 		exit(1);
 
-	bts = gsm_bts_alloc(gsmnet, GSM_BTS_TYPE_NANOBTS_900, HARDCODED_TSC,
+	bts = gsm_bts_alloc(gsmnet, GSM_BTS_TYPE_NANOBTS, HARDCODED_TSC,
 				HARDCODED_BSIC);
 	
 	register_signal_handler(SS_NM, nm_sig_cb, NULL);
