diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h
index 495f741..a493a69 100644
--- a/openbsc/include/openbsc/gsm_data.h
+++ b/openbsc/include/openbsc/gsm_data.h
@@ -242,8 +242,7 @@
 enum gsm_bts_type {
 	GSM_BTS_TYPE_UNKNOWN,
 	GSM_BTS_TYPE_BS11,
-	GSM_BTS_TYPE_NANOBTS_900,
-	GSM_BTS_TYPE_NANOBTS_1800,
+	GSM_BTS_TYPE_NANOBTS,
 };
 
 /**
@@ -445,8 +444,7 @@
 static inline int is_ipaccess_bts(struct gsm_bts *bts)
 {
 	switch (bts->type) {
-	case GSM_BTS_TYPE_NANOBTS_900:
-	case GSM_BTS_TYPE_NANOBTS_1800:
+	case GSM_BTS_TYPE_NANOBTS:
 		return 1;
 	default:
 		break;
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);
