diff --git a/src/bts.h b/src/bts.h
index 9c75369..df81440 100644
--- a/src/bts.h
+++ b/src/bts.h
@@ -28,6 +28,7 @@
 #include <osmocom/core/stat_item.h>
 #include <osmocom/gsm/l1sap.h>
 #include <osmocom/gsm/protocol/gsm_04_08.h>
+	#include <mslot_class.h>
 }
 
 #include <gsm_rlcmac.h>
@@ -45,7 +46,6 @@
 #define LLC_CODEL_DISABLE 0
 #define LLC_CODEL_USE_DEFAULT (-1)
 #define MAX_GPRS_CS 9
-#define NO_FREE_TFI 0xffffffff
 
 /* see bts->gsmtap_categ_mask */
 enum pcu_gsmtap_category {
diff --git a/src/gprs_rlcmac_ts_alloc.cpp b/src/gprs_rlcmac_ts_alloc.cpp
index 29e41f5..6791b03 100644
--- a/src/gprs_rlcmac_ts_alloc.cpp
+++ b/src/gprs_rlcmac_ts_alloc.cpp
@@ -62,23 +62,6 @@
 	return was_set;
 }
 
-static inline int8_t find_free_tfi(const struct gprs_rlcmac_pdch *pdch, enum gprs_rlcmac_tbf_direction dir)
-{
-	uint32_t tfi_map = pdch->assigned_tfi(dir);
-	int8_t tfi;
-
-	if (tfi_map == NO_FREE_TFI)
-		return -1;
-
-	/* look for USF, don't use USF=7 */
-	for (tfi = 0; tfi < 32; tfi++) {
-		if (!(tfi_map & (1 << tfi)))
-			return tfi;
-	}
-
-	return -1;
-}
-
 static int find_possible_pdchs(const struct gprs_rlcmac_trx *trx, size_t max_slots, uint8_t mask,
 			       const char *mask_reason = NULL)
 {
@@ -187,7 +170,7 @@
 			/* We have found a candidate */
 			/* Make sure that a TFI is available */
 			if (free_tfi) {
-				tfi = find_free_tfi(pdch, dir);
+				tfi = find_free_tfi(pdch->assigned_tfi(dir));
 				if (tfi < 0) {
 					LOGP(DRLCMAC, LOGL_DEBUG,
 						"- Skipping TS %d, because "
diff --git a/src/mslot_class.c b/src/mslot_class.c
index 6a7e25b..d49d411 100644
--- a/src/mslot_class.c
+++ b/src/mslot_class.c
@@ -229,6 +229,22 @@
 	return -1;
 }
 
+/* look for USF, don't use USF=7 */
+int8_t find_free_tfi(uint32_t tfi_map)
+{
+	int8_t tfi;
+
+	if (tfi_map == NO_FREE_TFI)
+		return -1;
+
+	for (tfi = 0; tfi < 32; tfi++) {
+		if (!(tfi_map & (1 << tfi)))
+			return tfi;
+	}
+
+	return -1;
+}
+
 void masked_override_with(char *buf, uint8_t mask, char set_char)
 {
 	int i;
diff --git a/src/mslot_class.h b/src/mslot_class.h
index c274337..97b865b 100644
--- a/src/mslot_class.h
+++ b/src/mslot_class.h
@@ -36,6 +36,8 @@
 
 #define DEFAULT_MSLOT_CLASS 12
 
+#define NO_FREE_TFI 0xffffffff
+
 enum { MASK_TT = 0, MASK_TR = 1 };
 
 /* multislot class selection routines */
@@ -52,4 +54,5 @@
 /* multislot allocation helper routines */
 void mslot_fill_rx_mask(uint8_t mslot_class, uint8_t num_tx, uint8_t *rx_mask);
 int8_t find_free_usf(uint8_t usf_map);
+int8_t find_free_tfi(uint32_t tfi_map);
 void masked_override_with(char *buf, uint8_t mask, char set_char);
