diff --git a/src/gprs/gprs_sgsn.c b/src/gprs/gprs_sgsn.c
index 18625ae..11225dd 100644
--- a/src/gprs/gprs_sgsn.c
+++ b/src/gprs/gprs_sgsn.c
@@ -699,10 +699,21 @@
 	sgsn_auth_update(mmctx);
 }
 
-static void insert_qos(struct tlv_parsed *tp, struct sgsn_subscriber_pdp_data *pdp)
+static void insert_extra(struct tlv_parsed *tp,
+			struct sgsn_subscriber_data *data,
+			struct sgsn_subscriber_pdp_data *pdp)
 {
 	tp->lv[OSMO_IE_GSM_SUB_QOS].len = pdp->qos_subscribed_len;
 	tp->lv[OSMO_IE_GSM_SUB_QOS].val = pdp->qos_subscribed;
+
+	/* Prefer PDP charging characteristics of per subscriber one */
+	if (pdp->has_pdp_charg) {
+		tp->lv[OSMO_IE_GSM_CHARG_CHAR].len = sizeof(pdp->pdp_charg);
+		tp->lv[OSMO_IE_GSM_CHARG_CHAR].val = &pdp->pdp_charg[0];
+	} else if (data->has_pdp_charg) {
+		tp->lv[OSMO_IE_GSM_CHARG_CHAR].len = sizeof(data->pdp_charg);
+		tp->lv[OSMO_IE_GSM_CHARG_CHAR].val = &data->pdp_charg[0];
+	}
 }
 
 /**
@@ -751,7 +762,7 @@
 			{
 				allow_any_apn = 1;
 				selected_apn_str = "";
-				insert_qos(tp, pdp);
+				insert_extra(tp, mmctx->subscr->sgsn_data, pdp);
 				continue;
 			}
 			if (!llist_empty(&sgsn_apn_ctxts)) {
@@ -760,7 +771,7 @@
 				if (apn_ctx == NULL)
 					continue;
 			}
-			insert_qos(tp, pdp);
+			insert_extra(tp, mmctx->subscr->sgsn_data, pdp);
 			selected_apn_str = pdp->apn_str;
 			break;
 		}
@@ -768,13 +779,13 @@
 		/* Check whether the given APN is granted */
 		llist_for_each_entry(pdp, &mmctx->subscr->sgsn_data->pdp_list, list) {
 			if (strcmp(pdp->apn_str, "*") == 0) {
-				insert_qos(tp, pdp);
+				insert_extra(tp, mmctx->subscr->sgsn_data, pdp);
 				selected_apn_str = req_apn_str;
 				allow_any_apn = 1;
 				continue;
 			}
 			if (strcasecmp(pdp->apn_str, req_apn_str) == 0) {
-				insert_qos(tp, pdp);
+				insert_extra(tp, mmctx->subscr->sgsn_data, pdp);
 				selected_apn_str = req_apn_str;
 				break;
 			}
