diff --git a/src/gprs_ms.c b/src/gprs_ms.c
index ab1a067..2250fa9 100644
--- a/src/gprs_ms.c
+++ b/src/gprs_ms.c
@@ -79,11 +79,10 @@
 	.ms_active = gprs_default_cb_ms_active,
 };
 
-void ms_timeout(void *data)
+static void ms_release_timer_cb(void *data)
 {
 	struct GprsMs *ms = (struct GprsMs *) data;
-	LOGP(DRLCMAC, LOGL_INFO, "Timeout for MS object, TLLI = 0x%08x\n",
-		ms_tlli(ms));
+	LOGPMS(ms, DRLCMAC, LOGL_INFO, "Release timer expired\n");
 
 	if (ms->timer.data) {
 		ms->timer.data = NULL;
@@ -116,7 +115,7 @@
 
 	ms->imsi[0] = '\0';
 	memset(&ms->timer, 0, sizeof(ms->timer));
-	ms->timer.cb = ms_timeout;
+	ms->timer.cb = ms_release_timer_cb;
 	llc_queue_init(&ms->llc_queue);
 
 	ms_set_mode(ms, GPRS);
@@ -218,22 +217,26 @@
 		ms_update_status(ms);
 }
 
-void ms_start_timer(struct GprsMs *ms)
+static void ms_release_timer_start(struct GprsMs *ms)
 {
 	if (ms->delay == 0)
 		return;
 
+	LOGPMS(ms, DRLCMAC, LOGL_DEBUG, "Schedule MS release in %u secs\n", ms->delay);
+
 	if (!ms->timer.data)
 		ms->timer.data = ms_ref(ms);
 
 	osmo_timer_schedule(&ms->timer, ms->delay, 0);
 }
 
-void ms_stop_timer(struct GprsMs *ms)
+static void ms_release_timer_stop(struct GprsMs *ms)
 {
 	if (!ms->timer.data)
 		return;
 
+	LOGPMS(ms, DRLCMAC, LOGL_DEBUG, "Cancel scheduled MS release\n");
+
 	osmo_timer_del(&ms->timer);
 	ms->timer.data = NULL;
 	ms_unref(ms);
@@ -306,7 +309,7 @@
 	ms->ul_tbf = tbf;
 
 	if (tbf)
-		ms_stop_timer(ms);
+		ms_release_timer_stop(ms);
 
 	ms_unref(ms);
 }
@@ -327,7 +330,7 @@
 	ms->dl_tbf = tbf;
 
 	if (tbf)
-		ms_stop_timer(ms);
+		ms_release_timer_stop(ms);
 
 	ms_unref(ms);
 }
@@ -374,7 +377,7 @@
 		ms_set_reserved_slots(ms, NULL, 0, 0);
 
 		if (ms_tlli(ms) != 0)
-			ms_start_timer(ms);
+			ms_release_timer_start(ms);
 	}
 
 	ms_update_status(ms);
@@ -386,7 +389,7 @@
 		"Clearing MS object, TLLI: 0x%08x, IMSI: '%s'\n",
 		ms_tlli(ms), ms_imsi(ms));
 
-	ms_stop_timer(ms);
+	ms_release_timer_stop(ms);
 
 	ms->tlli = GSM_RESERVED_TMSI;
 	ms->new_dl_tlli = ms->tlli;
diff --git a/tests/ms/MsTest.err b/tests/ms/MsTest.err
index 51ab68d..261a026 100644
--- a/tests/ms/MsTest.err
+++ b/tests/ms/MsTest.err
@@ -52,7 +52,7 @@
 Attaching TBF to MS object, TLLI = 0xffeeddbb, TBF = TBF(TFI=0 TLLI=0xffeeddbb DIR=DL STATE=NULL)
 Detaching TBF from MS object, TLLI = 0xffeeddbb, TBF = TBF(TFI=0 TLLI=0xffeeddbb DIR=UL STATE=NULL)
 Detaching TBF from MS object, TLLI = 0xffeeddbb, TBF = TBF(TFI=0 TLLI=0xffeeddbb DIR=DL STATE=NULL)
-Timeout for MS object, TLLI = 0xffeeddbb
+MS(TLLI=0xffeeddbb, IMSI=, TA=220, 0/0,) Release timer expired
 Destroying MS object, TLLI = 0xffeeddbb
 Creating MS object, TLLI = 0xffeeddbb
 Attaching TBF to MS object, TLLI = 0xffeeddbb, TBF = TBF(TFI=0 TLLI=0xffeeddbb DIR=DL STATE=NULL)
diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err
index 0f802a7..5185c7d 100644
--- a/tests/tbf/TbfTest.err
+++ b/tests/tbf/TbfTest.err
@@ -1382,6 +1382,7 @@
 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=RELEASING) free
 PDCH(bts=0,trx=0,ts=4) Detaching TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=RELEASING), 0 TBFs, USFs = 00, TFIs = 00000000.
 Detaching TBF from MS object, TLLI = 0xc0123456, TBF = TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=RELEASING)
+MS(TLLI=0xc0123456, IMSI=001001000123456, TA=0, 45/0,) Schedule MS release in 10 secs
 ********** DL-TBF ends here **********
 MS(TLLI=0xc0123456, IMSI=001001000123456, TA=0, 45/0,) ********** DL-TBF starts here **********
 MS(TLLI=0xc0123456, IMSI=001001000123456, TA=0, 45/0,) Allocating DL TBF
@@ -1398,6 +1399,7 @@
 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) Setting Control TS 4
 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) Allocated: trx = 0, ul_slots = 10, dl_slots = 10
 Attaching TBF to MS object, TLLI = 0xc0123456, TBF = TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL)
+MS(TLLI=0xc0123456, IMSI=001001000123456, TA=0, 45/0, DL) Cancel scheduled MS release
 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) [DOWNLINK] START
 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) Send dowlink assignment on PCH, no TBF exist (IMSI=001001000123456)
 TBF(TFI=0 TLLI=0xc0123456 DIR=DL STATE=NULL) changes state from NULL to ASSIGN
