diff --git a/pySim/cards.py b/pySim/cards.py
index b8a37d4..4dc20a4 100644
--- a/pySim/cards.py
+++ b/pySim/cards.py
@@ -178,7 +178,7 @@
         data, sw = self._scc.update_record(EF['SMSP'], 1, rpad(smsp, 84))
         return sw
 
-    def update_ad(self, mnc=None, opmode=None, ofm=None):
+    def update_ad(self, mnc=None, opmode=None, ofm=None, path=EF['AD']):
         """
         Update Administrative Data (AD)
 
@@ -191,6 +191,7 @@
                 mnc (str): MNC of IMSI
                 opmode (Hex-str, 1 Byte): MS Operation Mode
                 ofm (Hex-str, 1 Byte): Operational Feature Monitor (OFM) aka Ciphering Indicator
+                path (optional list with file path e.g. ['3f00', '7f20', '6fad'])
 
         Returns:
                 str: Return code of write operation
@@ -200,7 +201,7 @@
 
         # read from card
         raw_hex_data, sw = self._scc.read_binary(
-            EF['AD'], length=None, offset=0)
+            path, length=None, offset=0)
         abstract_data = ad.decode_hex(raw_hex_data)
 
         # perform updates
@@ -223,7 +224,7 @@
 
         # write to card
         raw_hex_data = ad.encode_hex(abstract_data)
-        data, sw = self._scc.update_binary(EF['AD'], raw_hex_data)
+        data, sw = self._scc.update_binary(path, raw_hex_data)
         return sw
 
     def read_spn(self):
@@ -1576,6 +1577,17 @@
 
         data, sw = self.select_adf_by_aid(adf="usim")
         if sw == '9000':
+            # EF.AD in ADF.USIM
+            if (p.get('mcc') and p.get('mnc')) or p.get('opmode'):
+                 if p.get('mcc') and p.get('mnc'):
+                     mnc = p['mnc']
+                 else:
+                     mnc = None
+            sw = self.update_ad(mnc=mnc, opmode=p.get('opmode'),
+                                path=EF_USIM_ADF_map['AD'])
+            if sw != '9000':
+                print("Programming AD failed with code %s" % sw)
+
             # update EF-USIM_AUTH_KEY in ADF.USIM
             if p.get('ki'):
                 self._scc.update_binary('af20', p['ki'], 1)
