diff --git a/openbsc/src/gprs/gb_proxy_tlli.c b/openbsc/src/gprs/gb_proxy_tlli.c
index 4c97f8a..4ceaea9 100644
--- a/openbsc/src/gprs/gb_proxy_tlli.c
+++ b/openbsc/src/gprs/gb_proxy_tlli.c
@@ -444,9 +444,7 @@
 		/* A new P-TMSI has been signalled in the message,
 		 * register new TLLI */
 		uint32_t new_sgsn_ptmsi;
-		uint32_t new_sgsn_tlli;
 		uint32_t new_bss_ptmsi;
-		uint32_t new_bss_tlli = 0;
 		if (!gprs_parse_mi_tmsi(parse_ctx->new_ptmsi_enc, GSM48_TMSI_LEN,
 					&new_sgsn_ptmsi)) {
 			LOGP(DGPRS, LOGL_ERROR,
@@ -454,19 +452,11 @@
 			     parse_ctx->tlli);
 			return tlli_info;
 		}
-		new_sgsn_tlli = gprs_tmsi2tlli(new_sgsn_ptmsi, TLLI_LOCAL);
 		new_bss_ptmsi = gbproxy_make_bss_ptmsi(peer, new_sgsn_ptmsi);
-		if (new_bss_ptmsi != GSM_RESERVED_TMSI)
-			new_bss_tlli = gprs_tmsi2tlli(new_bss_ptmsi, TLLI_LOCAL);
-		LOGP(DGPRS, LOGL_INFO,
-		     "Got new TLLI(PTMSI) %08x(%08x) from SGSN, using %08x(%08x)\n",
-		     new_sgsn_tlli, new_sgsn_ptmsi, new_bss_tlli, new_bss_ptmsi);
 
-		gbproxy_reassign_tlli(&tlli_info->sgsn_tlli,
-				      peer, new_sgsn_tlli);
-		gbproxy_reassign_tlli(&tlli_info->tlli,
-				      peer, new_bss_tlli);
-		gbproxy_touch_tlli(peer, tlli_info, now);
+		LOGP(DGPRS, LOGL_INFO,
+		     "Got new PTMSI %08x from SGSN, using %08x for BSS\n",
+		     new_sgsn_ptmsi, new_bss_ptmsi);
 		/* Setup PTMSIs */
 		tlli_info->sgsn_tlli.ptmsi = new_sgsn_ptmsi;
 		tlli_info->tlli.ptmsi = new_bss_ptmsi;
@@ -553,8 +543,29 @@
 	time_t now,
 	struct gprs_gb_parse_context *parse_ctx)
 {
-	if (parse_ctx->invalidate_tlli)
+	if (parse_ctx->invalidate_tlli) {
 		gbproxy_unregister_tlli(peer, parse_ctx->tlli);
+	} else if (parse_ctx->to_bss && parse_ctx->tlli_enc &&
+		   parse_ctx->new_ptmsi_enc && tlli_info) {
+		/* A new PTMSI has been signaled in the message,
+		 * register new TLLI */
+		uint32_t new_sgsn_ptmsi = tlli_info->sgsn_tlli.ptmsi;
+		uint32_t new_bss_ptmsi = tlli_info->tlli.ptmsi;
+		uint32_t new_sgsn_tlli;
+		uint32_t new_bss_tlli = 0;
+
+		new_sgsn_tlli = gprs_tmsi2tlli(new_sgsn_ptmsi, TLLI_LOCAL);
+		if (new_bss_ptmsi != GSM_RESERVED_TMSI)
+			new_bss_tlli = gprs_tmsi2tlli(new_bss_ptmsi, TLLI_LOCAL);
+		LOGP(DGPRS, LOGL_INFO,
+		     "Assigning new TLLI %08x to SGSN, %08x to BSS\n",
+		     new_sgsn_tlli, new_bss_tlli);
+
+		gbproxy_reassign_tlli(&tlli_info->sgsn_tlli,
+				      peer, new_sgsn_tlli);
+		gbproxy_reassign_tlli(&tlli_info->tlli,
+				      peer, new_bss_tlli);
+	}
 
 	gbproxy_remove_stale_tllis(peer, now);
 }
diff --git a/openbsc/tests/gbproxy/gbproxy_test.ok b/openbsc/tests/gbproxy/gbproxy_test.ok
index 8e6770a..389c68c 100644
--- a/openbsc/tests/gbproxy/gbproxy_test.ok
+++ b/openbsc/tests/gbproxy/gbproxy_test.ok
@@ -2276,19 +2276,18 @@
 
 NS UNITDATA MESSAGE to BSS, BVCI 0x1002, msg length 87 (gprs_ns_sendmsg)
 MESSAGE to BSS at 0x01020304:1111, msg length 91
-00 00 10 02 00 e0 98 76 54 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 21 63 54 40 50 60 19 54 ab b3 18 05 f4 e0 54 32 10 17 16 1b a3 a8 
+00 00 10 02 00 e6 56 aa 1f 00 50 20 16 82 02 58 13 99 18 b3 43 2b 25 96 62 00 60 80 9a c2 c6 62 00 60 80 ba c8 c6 62 00 60 80 00 0a 82 08 02 0d 88 11 12 13 14 15 16 17 18 00 81 00 0e 9d 41 c0 11 08 09 00 49 11 22 33 40 50 60 19 54 ab b3 18 05 f4 ea d4 77 5a 17 16 31 d5 78 
 
 result (RA UDP ACC (P-TMSI 3)) = 91
 
 Peers:
   NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96
     RAID patched              (BSS ): 11
-    RAID patched              (SGSN): 2
+    RAID patched              (SGSN): 3
     APN patched                     : 1
     TLLI patched              (BSS ): 8
-    TLLI patched              (SGSN): 6
-    P-TMSI patched            (SGSN): 2
-    Patch error: other              : 1
+    TLLI patched              (SGSN): 7
+    P-TMSI patched            (SGSN): 3
     Attach Request count            : 1
     TLLI cache size                 : 1
     TLLI-Cache: 1
@@ -2320,12 +2319,11 @@
 Peers:
   NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96
     RAID patched              (BSS ): 12
-    RAID patched              (SGSN): 2
+    RAID patched              (SGSN): 3
     APN patched                     : 1
     TLLI patched              (BSS ): 9
-    TLLI patched              (SGSN): 7
-    P-TMSI patched            (SGSN): 2
-    Patch error: other              : 1
+    TLLI patched              (SGSN): 8
+    P-TMSI patched            (SGSN): 3
     Attach Request count            : 1
     TLLI cache size                 : 1
     TLLI-Cache: 1
@@ -2345,12 +2343,11 @@
 Peers:
   NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96
     RAID patched              (BSS ): 12
-    RAID patched              (SGSN): 2
+    RAID patched              (SGSN): 3
     APN patched                     : 1
     TLLI patched              (BSS ): 10
-    TLLI patched              (SGSN): 7
-    P-TMSI patched            (SGSN): 2
-    Patch error: other              : 1
+    TLLI patched              (SGSN): 8
+    P-TMSI patched            (SGSN): 3
     Attach Request count            : 1
     TLLI cache size                 : 1
     TLLI-Cache: 1
@@ -2370,12 +2367,11 @@
 Peers:
   NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96
     RAID patched              (BSS ): 13
-    RAID patched              (SGSN): 2
+    RAID patched              (SGSN): 3
     APN patched                     : 1
     TLLI patched              (BSS ): 11
-    TLLI patched              (SGSN): 7
-    P-TMSI patched            (SGSN): 2
-    Patch error: other              : 1
+    TLLI patched              (SGSN): 8
+    P-TMSI patched            (SGSN): 3
     Attach Request count            : 1
     TLLI cache size                 : 1
     TLLI-Cache: 1
@@ -2395,12 +2391,11 @@
 Peers:
   NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96
     RAID patched              (BSS ): 13
-    RAID patched              (SGSN): 3
+    RAID patched              (SGSN): 4
     APN patched                     : 1
     TLLI patched              (BSS ): 11
-    TLLI patched              (SGSN): 8
-    P-TMSI patched            (SGSN): 2
-    Patch error: other              : 1
+    TLLI patched              (SGSN): 9
+    P-TMSI patched            (SGSN): 3
     Attach Request count            : 1
     TLLI cache size                 : 1
     TLLI-Cache: 1
@@ -2463,13 +2458,12 @@
 Peers:
   NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96
     RAID patched              (BSS ): 14
-    RAID patched              (SGSN): 4
+    RAID patched              (SGSN): 5
     APN patched                     : 1
     TLLI patched              (BSS ): 13
-    TLLI patched              (SGSN): 9
+    TLLI patched              (SGSN): 10
     P-TMSI patched            (BSS ): 1
-    P-TMSI patched            (SGSN): 2
-    Patch error: other              : 1
+    P-TMSI patched            (SGSN): 3
     Attach Request count            : 1
     TLLI cache size                 : 1
     TLLI-Cache: 1
@@ -2489,13 +2483,12 @@
 Peers:
   NSEI 4096, BVCI 4098, not blocked, RAI 112-332-16464-96
     RAID patched              (BSS ): 14
-    RAID patched              (SGSN): 4
+    RAID patched              (SGSN): 5
     APN patched                     : 1
     TLLI patched              (BSS ): 13
-    TLLI patched              (SGSN): 10
+    TLLI patched              (SGSN): 11
     P-TMSI patched            (BSS ): 1
-    P-TMSI patched            (SGSN): 2
-    Patch error: other              : 1
+    P-TMSI patched            (SGSN): 3
     Attach Request count            : 1
     TLLI-Cache: 0
 Gbproxy global:
