diff --git a/pySim-prog.py b/pySim-prog.py
index 9149709..990fe15 100755
--- a/pySim-prog.py
+++ b/pySim-prog.py
@@ -43,6 +43,7 @@
 from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn, dec_iccid
 from pySim.ts_51_011 import EF
 from pySim.card_handler import *
+from pySim.utils import *
 
 def parse_options():
 
@@ -483,8 +484,9 @@
 def read_params_csv(opts, imsi=None, iccid=None):
 	row = _read_params_csv(opts, iccid=iccid, imsi=imsi)
 	if row is not None:
-		row['mcc'] = row.get('mcc', row['imsi'][0:3])
-		row['mnc'] = row.get('mnc', row['imsi'][3:5])
+		row['mcc'] = row.get('mcc', mcc_from_imsi(row.get('imsi')))
+		row['mnc'] = row.get('mnc', mnc_from_imsi(row.get('imsi')))
+
 		pin_adm = None
 		# We need to escape the pin_adm we get from the csv
 		if 'pin_adm' in row:
diff --git a/pySim/utils.py b/pySim/utils.py
index a68af0a..e8dd531 100644
--- a/pySim/utils.py
+++ b/pySim/utils.py
@@ -206,3 +206,30 @@
 	num = map(int, str(cc))
 	check_digit = 10 - sum(num[-2::-2] + [sum(divmod(d * 2, 10)) for d in num[::-2]]) % 10
 	return 0 if check_digit == 10 else check_digit
+
+def mcc_from_imsi(imsi):
+	"""
+	Derive the MCC (Mobile Country Code) from the first three digits of an IMSI
+	"""
+	if imsi == None:
+		return None
+
+	if len(imsi) > 3:
+		return imsi[:3]
+	else:
+		return None
+
+def mnc_from_imsi(imsi, long=False):
+	"""
+	Derive the MNC (Mobile Country Code) from the 4th to 6th digit of an IMSI
+	"""
+	if imsi == None:
+		return None
+
+	if len(imsi) > 3:
+		if long:
+			return imsi[3:6]
+		else:
+			return imsi[3:5]
+	else:
+		return None
