diff --git a/src/gprs/gprs_sgsn.c b/src/gprs/gprs_sgsn.c
index efbae22..bac7325 100644
--- a/src/gprs/gprs_sgsn.c
+++ b/src/gprs/gprs_sgsn.c
@@ -56,7 +56,7 @@
 #define GPRS_LLME_CHECK_TICK 30
 
 extern struct sgsn_instance *sgsn;
-extern void *tall_bsc_ctx;
+extern void *tall_sgsn_ctx;
 
 LLIST_HEAD(sgsn_mm_ctxts);
 LLIST_HEAD(sgsn_ggsn_ctxts);
@@ -135,7 +135,7 @@
 };
 
 void sgsn_rate_ctr_init() {
-	sgsn->rate_ctrs = rate_ctr_group_alloc(tall_bsc_ctx, &sgsn_ctrg_desc, 0);
+	sgsn->rate_ctrs = rate_ctr_group_alloc(tall_sgsn_ctx, &sgsn_ctrg_desc, 0);
 	OSMO_ASSERT(sgsn->rate_ctrs);
 }
 
@@ -223,7 +223,7 @@
 {
 	struct sgsn_mm_ctx *ctx;
 
-	ctx = talloc_zero(tall_bsc_ctx, struct sgsn_mm_ctx);
+	ctx = talloc_zero(tall_sgsn_ctx, struct sgsn_mm_ctx);
 	if (!ctx)
 		return NULL;
 
@@ -257,7 +257,7 @@
 	struct sgsn_mm_ctx *ctx;
 	struct ranap_ue_conn_ctx *ue_ctx = uectx;
 
-	ctx = talloc_zero(tall_bsc_ctx, struct sgsn_mm_ctx);
+	ctx = talloc_zero(tall_sgsn_ctx, struct sgsn_mm_ctx);
 	if (!ctx)
 		return NULL;
 
@@ -403,7 +403,7 @@
 	if (pdp)
 		return NULL;
 
-	pdp = talloc_zero(tall_bsc_ctx, struct sgsn_pdp_ctx);
+	pdp = talloc_zero(tall_sgsn_ctx, struct sgsn_pdp_ctx);
 	if (!pdp)
 		return NULL;
 
@@ -512,7 +512,7 @@
 {
 	struct sgsn_ggsn_ctx *ggc;
 
-	ggc = talloc_zero(tall_bsc_ctx, struct sgsn_ggsn_ctx);
+	ggc = talloc_zero(tall_sgsn_ctx, struct sgsn_ggsn_ctx);
 	if (!ggc)
 		return NULL;
 
@@ -575,7 +575,7 @@
 {
 	struct apn_ctx *actx;
 
-	actx = talloc_zero(tall_bsc_ctx, struct apn_ctx);
+	actx = talloc_zero(tall_sgsn_ctx, struct apn_ctx);
 	if (!actx)
 		return NULL;
 	actx->name = talloc_strdup(actx, ap_name);
