diff --git a/src/osmo_gsm_tester/obj/hlr_osmo.py b/src/osmo_gsm_tester/obj/hlr_osmo.py
index 9b911d6..ecff75e 100644
--- a/src/osmo_gsm_tester/obj/hlr_osmo.py
+++ b/src/osmo_gsm_tester/obj/hlr_osmo.py
@@ -125,7 +125,7 @@
         try:
             c = conn.cursor()
             c.execute('insert into subscriber (id, imsi, msisdn) values (?, ?, ?)',
-                        (subscriber_id, modem.imsi(), modem.msisdn,))
+                        (subscriber_id, modem.imsi(), modem.msisdn(),))
             c.execute('insert into auc_2g (subscriber_id, algo_id_2g, ki) values (?, ?, ?)',
                         (subscriber_id, algo, modem.ki(),))
             conn.commit()
diff --git a/src/osmo_gsm_tester/obj/ms.py b/src/osmo_gsm_tester/obj/ms.py
index 3e75719..417ad52 100644
--- a/src/osmo_gsm_tester/obj/ms.py
+++ b/src/osmo_gsm_tester/obj/ms.py
@@ -45,7 +45,7 @@
     def __init__(self, name, conf):
         super().__init__(log.C_TST, name)
         self._conf = conf
-        self.msisdn = None
+        self._msisdn = None
 
 ########################
 # PUBLIC - INTERNAL API
@@ -111,10 +111,10 @@
         return self._conf.get('auth_algo', None)
 
     def set_msisdn(self, msisdn):
-        self.msisdn = msisdn
+        self._msisdn = msisdn
 
     def msisdn(self):
-        return self.msisdn
+        return self._msisdn
 
     def get_counter(self, counter_name):
         raise log.Error('get_counter() not implemented!')
diff --git a/src/osmo_gsm_tester/obj/ms_ofono.py b/src/osmo_gsm_tester/obj/ms_ofono.py
index b604325..0c67e0a 100644
--- a/src/osmo_gsm_tester/obj/ms_ofono.py
+++ b/src/osmo_gsm_tester/obj/ms_ofono.py
@@ -706,12 +706,12 @@
 
     def sms_send(self, to_msisdn_or_modem, *tokens):
         if isinstance(to_msisdn_or_modem, Modem):
-            to_msisdn = to_msisdn_or_modem.msisdn
+            to_msisdn = to_msisdn_or_modem.msisdn()
             tokens = list(tokens)
             tokens.append('to ' + to_msisdn_or_modem.name())
         else:
             to_msisdn = str(to_msisdn_or_modem)
-        msg = sms.Sms(self.msisdn, to_msisdn, 'from ' + self.name(), *tokens)
+        msg = sms.Sms(self.msisdn(), to_msisdn, 'from ' + self.name(), *tokens)
         self.log('sending sms to MSISDN', to_msisdn, sms=msg)
         mm = self.dbus.interface(I_SMS)
         mm.SendMessage(to_msisdn, str(msg))
@@ -743,7 +743,7 @@
 
     def call_dial(self, to_msisdn_or_modem):
         if isinstance(to_msisdn_or_modem, Modem):
-            to_msisdn = to_msisdn_or_modem.msisdn
+            to_msisdn = to_msisdn_or_modem.msisdn()
         else:
             to_msisdn = str(to_msisdn_or_modem)
         self.dbg('Dialing:', to_msisdn)
@@ -766,7 +766,7 @@
 
     def call_wait_incoming(self, caller_msisdn_or_modem, timeout=60):
         if isinstance(caller_msisdn_or_modem, Modem):
-            caller_msisdn = caller_msisdn_or_modem.msisdn
+            caller_msisdn = caller_msisdn_or_modem.msisdn()
         else:
             caller_msisdn = str(caller_msisdn_or_modem)
         self.dbg('Waiting for incoming call from:', caller_msisdn)
