diff --git a/src/bts.cpp b/src/bts.cpp
index da62b30..be957fa 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -536,18 +536,51 @@
 	return m_bts.trx[trx].pdch[ts].ul_tbf_by_tfi(tfi);
 }
 
+static unsigned int trx_count_free_tfi(const struct gprs_rlcmac_trx *trx, enum gprs_rlcmac_tbf_direction dir, uint8_t *first_free_tfi)
+{
+	const struct gprs_rlcmac_pdch *pdch;
+	uint8_t ts;
+	unsigned int i;
+	unsigned int free_tfi_cnt = 0;
+	bool has_pdch = false;
+	uint32_t mask = NO_FREE_TFI;
+
+	for (ts = 0; ts < ARRAY_SIZE(trx->pdch); ts++) {
+		pdch = &trx->pdch[ts];
+		if (!pdch->is_enabled())
+			continue;
+		has_pdch = true;
+		mask &= ~pdch->assigned_tfi(dir);
+	}
+
+	if (!has_pdch || !mask) {
+		*first_free_tfi = (uint8_t)-1;
+		return 0;
+	}
+
+	/* Count free tfis and return */
+	for (i = 0; i < sizeof(mask) * 8 ; i++) {
+		if (mask & 1) {
+			if (free_tfi_cnt == 0)
+				*first_free_tfi = i;
+			free_tfi_cnt++;
+		}
+		mask >>= 1;
+	}
+	return free_tfi_cnt;
+}
+
 /*
- * Search for free TFI and return TFI, TRX.
- * This method returns the first TFI that is currently not used in any PDCH of
- * a TRX. The first TRX that contains such an TFI is returned. Negative values
- * indicate errors.
+ * Search for free TFI and return TFI, TRX. This method returns the first TFI
+ * that is currently not used in any PDCH of a the TRX with least TFIs currently
+ * assigned. Negative values indicate errors.
  */
 int BTS::tfi_find_free(enum gprs_rlcmac_tbf_direction dir, uint8_t *_trx, int8_t use_trx) const
 {
-	const struct gprs_rlcmac_pdch *pdch;
-	uint32_t free_tfis;
-	bool has_pdch = false;
-	uint8_t trx_from, trx_to, trx, ts, tfi;
+	uint8_t trx_from, trx_to, trx;
+	uint8_t best_trx_nr = 0xff;
+	unsigned int best_cnt = 0;
+	uint8_t best_first_tfi = 0;
 
 	if (use_trx >= 0 && use_trx < 8)
 		trx_from = trx_to = use_trx;
@@ -558,48 +591,27 @@
 
 	/* find a TFI that is unused on all PDCH */
 	for (trx = trx_from; trx <= trx_to; trx++) {
-		bool trx_has_pdch = false;
-
-		free_tfis = NO_FREE_TFI;
-
-		for (ts = 0; ts < 8; ts++) {
-			pdch = &m_bts.trx[trx].pdch[ts];
-			if (!pdch->is_enabled())
-				continue;
-			free_tfis &= ~pdch->assigned_tfi(dir);
-			trx_has_pdch = true;
-			has_pdch = true;
+		uint8_t tmp_first_tfi;
+		unsigned int tmp_cnt;
+		tmp_cnt = trx_count_free_tfi(&m_bts.trx[trx], dir, &tmp_first_tfi);
+		if (tmp_cnt > best_cnt) {
+			best_cnt = tmp_cnt;
+			best_first_tfi = tmp_first_tfi;
+			best_trx_nr = trx;
 		}
-		if (trx_has_pdch && free_tfis)
-			break;
-
-		free_tfis = 0;
-	}
-	if (!has_pdch) {
-		LOGP(DRLCMAC, LOGL_NOTICE, "No PDCH available.\n");
-		return -EINVAL;
 	}
 
-	if (!free_tfis) {
+	if (best_trx_nr == 0xff || best_cnt == 0) {
 		LOGP(DRLCMAC, LOGL_NOTICE, "No TFI available (suggested TRX: %d).\n", use_trx);
 		return -EBUSY;
 	}
 
+	OSMO_ASSERT(best_first_tfi < 32);
 
-	LOGP(DRLCMAC, LOGL_DEBUG,
-		"Searching for first unallocated TFI: TRX=%d\n", trx);
-
-	/* find the first */
-	for (tfi = 0; tfi < 32; tfi++) {
-		if (free_tfis & 1 << tfi)
-			break;
-	}
-
-	OSMO_ASSERT(tfi < 32);
-
-	LOGP(DRLCMAC, LOGL_DEBUG, " Found TFI=%d.\n", tfi);
-	*_trx = trx;
-	return tfi;
+	LOGP(DRLCMAC, LOGL_DEBUG, "Found first unallocated TRX=%d TFI=%d\n",
+	     best_trx_nr, best_first_tfi);
+	*_trx = best_trx_nr;
+	return best_first_tfi;
 }
 
 int BTS::rcv_imm_ass_cnf(const uint8_t *data, uint32_t fn)
diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp
index d1fdfba..d4a5618 100644
--- a/tests/tbf/TbfTest.cpp
+++ b/tests/tbf/TbfTest.cpp
@@ -197,6 +197,7 @@
 	tfi = the_bts->tfi_find_free(GPRS_RLCMAC_DL_TBF, &trx_no, -1);
 	OSMO_ASSERT(tfi >= 0);
 	dl_tbf = tbf_alloc_dl_tbf(bts, ms, trx_no, true);
+	OSMO_ASSERT(dl_tbf);
 	dl_tbf->set_ta(0);
 	check_tbf(dl_tbf);
 
diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err
index 1432e9c..8691e4c 100644
--- a/tests/tbf/TbfTest.err
+++ b/tests/tbf/TbfTest.err
@@ -42,8 +42,7 @@
 === start test_tbf_final_ack ===
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=45/0
 [DL] algo A <single> (suggested TRX: 0): Alloc start
@@ -132,8 +131,7 @@
 === start test_tbf_final_ack ===
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=45/0
 [DL] algo A <single> (suggested TRX: 0): Alloc start
@@ -222,8 +220,7 @@
 === start test_tbf_delayed_release ===
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=45/0
 [DL] algo A <single> (suggested TRX: 0): Alloc start
@@ -477,8 +474,7 @@
 === start test_tbf_imsi ===
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=45/0
 [DL] algo A <single> (suggested TRX: 0): Alloc start
@@ -499,8 +495,7 @@
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL) changes state from NULL to FLOW
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 45
-Searching for first unallocated TFI: TRX=0
- Found TFI=1.
+Found first unallocated TRX=0 TFI=1
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=45/0
 [DL] algo A <single> (suggested TRX: 0): Alloc start
@@ -1443,8 +1438,7 @@
 MSG = 07 01 04 4d 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 03 
 === end test_tbf_dl_llc_loss ===
 === start test_tbf_single_phase ===
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 MS requests Uplink resource on CCCH/RACH: ra=0x03 (8 bit) Fn=2654167 qta=31
 Creating MS object, TLLI = 0x00000000
 ********** UL-TBF starts here **********
@@ -1518,8 +1512,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -1599,8 +1592,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -1724,8 +1716,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654335 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=1.
+Found first unallocated TRX=0 TFI=1
 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) poll timeout for FN=2654292, TS=7 (curr FN 2654335)
 TBF(TFI=0 TLLI=0xf1223344 DIR=DL STATE=FINISHED) Timeout for polling PACKET DOWNLINK ACK: |Assignment was on PACCH|No downlink ACK received yet|
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
@@ -1791,8 +1782,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -1880,8 +1870,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654327 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 MS requests UL TBF in packet resource request of single block, so we provide one:
@@ -1933,8 +1922,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -2018,8 +2006,7 @@
 PDCH(TS 7, TRX 0): Detaching TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW), 0 TBFs, USFs = 00, TFIs = 00000000.
 Detaching TBF from MS object, TLLI = 0xf1223344, TBF = TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW)
 ********** UL-TBF ends here **********
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 MS requests Uplink resource on CCCH/RACH: ra=0x03 (8 bit) Fn=2654275 qta=31
 Creating MS object, TLLI = 0x00000000
 ********** UL-TBF starts here **********
@@ -2078,8 +2065,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -3023,8 +3009,7 @@
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=12/0
 [DL] algo B <multi> (suggested TRX: 0): Alloc start
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 Slot Allocation (Algorithm B) for class 12
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
@@ -3063,8 +3048,7 @@
 Allocating DL TBF: MS_CLASS=12/12
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
 [DL] algo B <multi> (suggested TRX: 0): Alloc start
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 Slot Allocation (Algorithm B) for class 12
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
@@ -3104,8 +3088,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -3194,8 +3177,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -3414,8 +3396,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -3721,8 +3702,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -3978,8 +3958,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -4197,8 +4176,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -4384,8 +4362,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -4551,8 +4528,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -4700,8 +4676,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -4844,8 +4819,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -4977,8 +4951,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5112,8 +5085,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5168,8 +5140,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5224,8 +5195,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5280,8 +5250,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5352,8 +5321,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5424,8 +5392,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5496,8 +5463,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5570,8 +5536,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5633,8 +5598,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5696,8 +5660,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5759,8 +5722,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -5831,8 +5793,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -5943,8 +5904,7 @@
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
 [DL] algo B <single> (suggested TRX: 0): Alloc start
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 Slot Allocation (Algorithm B) for class 11
 - Skipping TS 0, because not enabled
 - Skipping TS 1, because not enabled
@@ -5966,8 +5926,7 @@
 ********** DL-TBF update **********
 PDCH(TS 4, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000.
 [DL] algo B <multi> (suggested TRX: -1): Alloc start
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 - Selected DL slots: (TS=0)"..DDDD.."(TS=7), multi
 [DL] algo B <multi> (suggested TRX: -1): using 4 slots
 - Assigning DL TS 2
@@ -5996,8 +5955,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -6098,8 +6056,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) Enabled EGPRS, mode EGPRS
@@ -6320,8 +6277,7 @@
 MS requests single block allocation
 Allocated a single block at SBFn=2654270 TRX=0 TS=7
 Tx Immediate Assignment on AGCH: TRX=0 (ARFCN 0) TS=7 TA=7 TSC=0 TFI=-1 USF=7
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 +++++++++++++++++++++++++ RX : Uplink Control Block +++++++++++++++++++++++++
 ------------------------- RX : Uplink Control Block -------------------------
 Creating MS object, TLLI = 0x00000000
@@ -7723,8 +7679,7 @@
 Creating MS object, TLLI = 0x00000000
 Modifying MS object, TLLI = 0x00000000, MS class 0 -> 11
 Modifying MS object, TLLI = 0x00000000, EGPRS MS class 0 -> 11
-Searching for first unallocated TFI: TRX=0
- Found TFI=0.
+Found first unallocated TRX=0 TFI=0
 ********** DL-TBF starts here **********
 Allocating DL TBF: MS_CLASS=11/11
 [DL] algo A <single> (suggested TRX: 0): Alloc start
