diff --git a/include/osmocom/sgsn/gprs_sgsn.h b/include/osmocom/sgsn/gprs_sgsn.h
index c176494..dcda5c3 100644
--- a/include/osmocom/sgsn/gprs_sgsn.h
+++ b/include/osmocom/sgsn/gprs_sgsn.h
@@ -417,7 +417,7 @@
 struct sgsn_instance *sgsn_instance_alloc(void *talloc_ctx);
 void sgsn_inst_init(struct sgsn_instance *sgsn);
 
-char *gprs_pdpaddr2str(uint8_t *pdpa, uint8_t len);
+char *gprs_pdpaddr2str(uint8_t *pdpa, uint8_t len, bool return_ipv6);
 
 /*
  * ctrl interface related work
diff --git a/src/sgsn/sgsn_ctrl.c b/src/sgsn/sgsn_ctrl.c
index ad91d25..69034e2 100644
--- a/src/sgsn/sgsn_ctrl.c
+++ b/src/sgsn/sgsn_ctrl.c
@@ -43,7 +43,7 @@
 
 		llist_for_each_entry(pdp, &mm->pdp_list, list)
 			addr = gprs_pdpaddr2str(pdp->lib->eua.v,
-						pdp->lib->eua.l);
+						pdp->lib->eua.l, false);
 
 		cmd->reply = talloc_asprintf_append(
 					cmd->reply,
diff --git a/src/sgsn/sgsn_vty.c b/src/sgsn/sgsn_vty.c
index e0e2677..6327d1a 100644
--- a/src/sgsn/sgsn_vty.c
+++ b/src/sgsn/sgsn_vty.c
@@ -135,7 +135,7 @@
 	return osmo_tdef_vty_set_cmd(vty, g_cfg->T_defs, argv);
 }
 
-char *gprs_pdpaddr2str(uint8_t *pdpa, uint8_t len)
+char *gprs_pdpaddr2str(uint8_t *pdpa, uint8_t len, bool return_ipv6)
 {
 	static char str[INET6_ADDRSTRLEN + 10];
 
@@ -148,15 +148,28 @@
 		case PDP_TYPE_N_IETF_IPv4:
 			if (len < 2 + 4)
 				break;
-			strcpy(str, "IPv4 ");
+			osmo_strlcpy(str, "IPv4 ", sizeof(str));
 			inet_ntop(AF_INET, pdpa+2, str+5, sizeof(str)-5);
 			return str;
 		case PDP_TYPE_N_IETF_IPv6:
 			if (len < 2 + 8)
 				break;
-			strcpy(str, "IPv6 ");
+			osmo_strlcpy(str, "IPv6 ", sizeof(str));
 			inet_ntop(AF_INET6, pdpa+2, str+5, sizeof(str)-5);
 			return str;
+		case PDP_TYPE_N_IETF_IPv4v6:
+			if (len < 2 + 20)
+				break;
+			if (return_ipv6) {
+				/* The IPv6 token, (rightmost four fields) is a duplicate of
+				 * the site prefix + subnetID (leftmost fields) in pdpa here */
+				osmo_strlcpy(str, "IPv6 ", sizeof(str));
+				inet_ntop(AF_INET6, pdpa+6, str+5, sizeof(str)-5);
+				return str;
+			}
+			osmo_strlcpy(str, "IPv4 ", sizeof(str));
+			inet_ntop(AF_INET, pdpa+2, str+5, sizeof(str)-5);
+			return str;
 		default:
 			break;
 		}
@@ -552,8 +565,13 @@
 			osmo_apn_to_str(apnbuf, pdp->lib->apn_use.v, pdp->lib->apn_use.l),
 			VTY_NEWLINE);
 		vty_out(vty, "%s  PDP Address: %s%s", pfx,
-			gprs_pdpaddr2str(pdp->lib->eua.v, pdp->lib->eua.l),
+			gprs_pdpaddr2str(pdp->lib->eua.v, pdp->lib->eua.l, false),
 			VTY_NEWLINE);
+		if (pdp->lib->eua.v[1] == PDP_TYPE_N_IETF_IPv4v6) {
+			vty_out(vty, "%s  PDP Address: %s%s", pfx,
+				gprs_pdpaddr2str(pdp->lib->eua.v, pdp->lib->eua.l, true),
+				VTY_NEWLINE);
+		}
 		vty_out(vty, "%s  GTPv%d Local Control(%s / TEIC: 0x%08x) ", pfx, pdp->lib->version,
 			sgsn_gtp_ntoa(&pdp->lib->gsnlc), pdp->lib->teic_own);
 		vty_out(vty, "Data(%s / TEID: 0x%08x)%s",
