diff --git a/src/bts.cpp b/src/bts.cpp
index 83c5029..af1a819 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -340,8 +340,35 @@
 	llist_add(&pag->list, &paging_list);
 }
 
+/* received RLC/MAC block from L1 */
 int gprs_rlcmac_pdch::rcv_block(uint8_t *data, uint8_t len, uint32_t fn, int8_t rssi)
 {
-	return gprs_rlcmac_rcv_block(trx->bts->bts_data(),
-					trx->trx_no, ts_no, data, len, fn, rssi);
+	struct gprs_rlcmac_bts *bts = trx->bts->bts_data();
+	unsigned payload = data[0] >> 6;
+	uint8_t trx_no = trx->trx_no;
+	bitvec *block;
+	int rc = 0;
+
+	switch (payload) {
+	case GPRS_RLCMAC_DATA_BLOCK:
+		rc = gprs_rlcmac_rcv_data_block_acknowledged(bts, trx_no, ts_no, data,
+			len, rssi);
+		break;
+	case GPRS_RLCMAC_CONTROL_BLOCK:
+		block = bitvec_alloc(len);
+		if (!block)
+			return -ENOMEM;
+		bitvec_unpack(block, data);
+		rc = gprs_rlcmac_rcv_control_block(bts, block, trx_no, ts_no, fn);
+		bitvec_free(block);
+		break;
+	case GPRS_RLCMAC_CONTROL_BLOCK_OPT:
+		LOGP(DRLCMAC, LOGL_NOTICE, "GPRS_RLCMAC_CONTROL_BLOCK_OPT block payload is not supported.\n");
+		break;
+	default:
+		LOGP(DRLCMAC, LOGL_NOTICE, "Unknown RLCMAC block payload(%u).\n", payload);
+		rc = -EINVAL;
+	}
+
+	return rc;
 }
diff --git a/src/gprs_rlcmac.cpp b/src/gprs_rlcmac.cpp
index 4adcfba..62e8ea7 100644
--- a/src/gprs_rlcmac.cpp
+++ b/src/gprs_rlcmac.cpp
@@ -168,39 +168,6 @@
 	return -1;
 }
 
-/* received RLC/MAC block from L1 */
-int gprs_rlcmac_rcv_block(struct gprs_rlcmac_bts *bts,
-	uint8_t trx, uint8_t ts, uint8_t *data, uint8_t len,
-	uint32_t fn, int8_t rssi)
-{
-	unsigned payload = data[0] >> 6;
-	bitvec *block;
-	int rc = 0;
-
-	switch (payload) {
-	case GPRS_RLCMAC_DATA_BLOCK:
-		rc = gprs_rlcmac_rcv_data_block_acknowledged(bts, trx, ts, data,
-			len, rssi);
-		break;
-	case GPRS_RLCMAC_CONTROL_BLOCK:
-		block = bitvec_alloc(len);
-		if (!block)
-			return -ENOMEM;
-		bitvec_unpack(block, data);
-		rc = gprs_rlcmac_rcv_control_block(bts, block, trx, ts, fn);
-		bitvec_free(block);
-		break;
-	case GPRS_RLCMAC_CONTROL_BLOCK_OPT:
-		LOGP(DRLCMAC, LOGL_NOTICE, "GPRS_RLCMAC_CONTROL_BLOCK_OPT block payload is not supported.\n");
-		break;
-	default:
-		LOGP(DRLCMAC, LOGL_NOTICE, "Unknown RLCMAC block payload(%u).\n", payload);
-		rc = -EINVAL;
-	}
-
-	return rc;
-}
-
 /* Send Uplink unit-data to SGSN. */
 int gprs_rlcmac_tx_ul_ud(gprs_rlcmac_tbf *tbf)
 {
diff --git a/src/gprs_rlcmac.h b/src/gprs_rlcmac.h
index d06a486..081271d 100644
--- a/src/gprs_rlcmac.h
+++ b/src/gprs_rlcmac.h
@@ -92,10 +92,6 @@
 	GPRS_RLCMAC_RESERVED = 0x3
 };
 
-int gprs_rlcmac_rcv_block(struct gprs_rlcmac_bts *bts,
-	uint8_t trx, uint8_t ts, uint8_t *data, uint8_t len,
-	uint32_t fn, int8_t rssi);
-
 int gprs_rlcmac_tx_ul_ud(gprs_rlcmac_tbf *tbf);
 
 int gprs_rlcmac_poll_timeout(struct gprs_rlcmac_bts *bts, struct gprs_rlcmac_tbf *tbf);
