diff --git a/pySim/cards.py b/pySim/cards.py
index 7744c7a..c41f343 100644
--- a/pySim/cards.py
+++ b/pySim/cards.py
@@ -32,6 +32,24 @@
 from smartcard.util import toBytes
 from pytlv.TLV import *
 
+def format_addr(addr:str, addr_type:str) -> str:
+	"""
+	helper function to format an FQDN (addr_type = '00') or IPv4
+	(addr_type = '01') address string into a printable string that
+	contains the hexadecimal representation and the original address
+	string (addr)
+	"""
+	res = ""
+	if addr_type == '00': #FQDN
+		res += "\t%s # %s\n" % (s2h(addr), addr)
+	elif addr_type == '01': #IPv4
+		octets = addr.split(".")
+		addr_hex = ""
+		for o in octets:
+			addr_hex += ("%02x" % int(o))
+		res += "\t%s # %s\n" % (addr_hex, addr)
+	return res
+
 class Card(object):
 
 	name = 'SIM'
@@ -316,7 +334,12 @@
 	def read_epdgid(self):
 		(res, sw) = self._scc.read_binary(EF_USIM_ADF_map['ePDGId'])
 		if sw == '9000':
-			return (dec_addr_tlv(res), sw)
+			try:
+				addr, addr_type = dec_addr_tlv(res)
+			except:
+				addr = None
+				addr_type = None
+			return (format_addr(addr, addr_type), sw)
 		else:
 			return (None, sw)
 
@@ -378,7 +401,12 @@
 		for i in range(0, rec_cnt):
 			(res, sw) = self._scc.read_record(EF_ISIM_ADF_map['PCSCF'], i + 1)
 			if sw == '9000':
-				content = dec_addr_tlv(res)
+				try:
+					addr, addr_type = dec_addr_tlv(res)
+				except:
+					addr = None
+					addr_type = None
+				content = format_addr(addr, addr_type)
 				pcscf_recs += "%s" % (len(content) and content or '\tNot available\n')
 			else:
 				pcscf_recs += "\tP-CSCF: Can't read, response code = %s\n" % (sw)
diff --git a/pySim/utils.py b/pySim/utils.py
index 3a8ddac..ff55642 100644
--- a/pySim/utils.py
+++ b/pySim/utils.py
@@ -692,8 +692,6 @@
 	# Convert from hex str to int bytes list
 	addr_tlv_bytes = h2i(hexstr)
 
-	s = ""
-
 	# Get list of tuples containing parsed TLVs
 	tlvs = TLV_parser(addr_tlv_bytes)
 
@@ -718,15 +716,18 @@
 		if addr_type == 0x00: #FQDN
 			# Skip address tye byte i.e. first byte in value list
 			content = tlv[2][1:]
-			s += "\t%s # %s\n" % (i2h(content), i2s(content))
+			return (i2s(content), '00')
+
 		elif addr_type == 0x01: #IPv4
 			# Skip address tye byte i.e. first byte in value list
 			# Skip the unused byte in Octect 4 after address type byte as per 3GPP TS 31.102
 			ipv4 = tlv[2][2:]
 			content = '.'.join(str(x) for x in ipv4)
-			s += "\t%s # %s\n" % (i2h(ipv4), content)
+			return (content, '01')
+		else:
+			raise ValueError("Invalid address type")
 
-	return s
+	return (None, None)
 
 def enc_addr_tlv(addr, addr_type='00'):
 	"""
