diff --git a/src/bsc_hack.c b/src/bsc_hack.c
index 81ff7f0..6967afa 100644
--- a/src/bsc_hack.c
+++ b/src/bsc_hack.c
@@ -1,6 +1,6 @@
 /* A hackish minimal BSC (+MSC +HLR) implementation */
 
-/* (C) 2008 by Harald Welte <laforge@gnumonks.org>
+/* (C) 2008-2009 by Harald Welte <laforge@gnumonks.org>
  * (C) 2009 by Holger Hans Peter Freyther <zecke@selfish.org>
  * All Rights Reserved
  *
@@ -963,23 +963,6 @@
 	printf("  -h --help this text\n");
 }
 
-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",
-};
-
-enum gsm_bts_type parse_btstype(char *arg)
-{
-	int i;
-	for (i = 0; i < ARRAY_SIZE(bts_types); i++) {
-		if (!strcmp(arg, bts_types[i]))
-			return i;
-	}	
-	return GSM_BTS_TYPE_BS11; /* Default: BS11 */
-}
-
 static void handle_options(int argc, char** argv)
 {
 	while (1) {
diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c
index d5a5bee..deafe7b 100644
--- a/src/gsm_04_08.c
+++ b/src/gsm_04_08.c
@@ -85,18 +85,6 @@
 	},
 };
 		
-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:
-		return 1;
-	default:
-		break;
-	}
-	return 0;
-}
-
 static int gsm48_tx_simple(struct gsm_lchan *lchan,
 			   u_int8_t pdisc, u_int8_t msg_type);
 static void schedule_reject(struct gsm_lchan *lchan);
diff --git a/src/gsm_data.c b/src/gsm_data.c
index e6447d9..136f31b 100644
--- a/src/gsm_data.c
+++ b/src/gsm_data.c
@@ -1,4 +1,4 @@
-/* (C) 2008 by Harald Welte <laforge@gnumonks.org>
+/* (C) 2008-2009 by Harald Welte <laforge@gnumonks.org>
  *
  * All Rights Reserved
  *
@@ -155,3 +155,27 @@
 
 	return ts2str;
 }
+
+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",
+};
+
+enum gsm_bts_type parse_btstype(char *arg)
+{
+	int i;
+	for (i = 0; i < ARRAY_SIZE(bts_types); i++) {
+		if (!strcmp(arg, bts_types[i]))
+			return i;
+	}	
+	return GSM_BTS_TYPE_BS11; /* Default: BS11 */
+}
+
+char *btstype2str(enum gsm_bts_type type)
+{
+	if (type > ARRAY_SIZE(bts_types))
+		return "undefined";
+	return bts_types[type];
+}
