diff --git a/src/osmo_gsm_tester/ofono_client.py b/src/osmo_gsm_tester/ofono_client.py
index e3858f9..30e2b55 100644
--- a/src/osmo_gsm_tester/ofono_client.py
+++ b/src/osmo_gsm_tester/ofono_client.py
@@ -349,10 +349,7 @@
     def cleanup(self):
         self.dbg('cleanup')
         if self.cancellable:
-            self.cancellable.cancel()
-            # Cancel op is applied as a signal coming from glib mainloop, so we
-            # need to run it and wait for the callbacks to handle cancellations.
-            poll_glib()
+            self.cancel_pending_dbus_methods()
             self.cancellable = None
         self.dbus.cleanup()
         self.dbus = None
@@ -500,6 +497,12 @@
         self.log('Registering with operator', matching_op_path, mcc_mnc)
         dbus_call_dismiss_error(self, 'org.ofono.Error.InProgress', dbus_op.Register)
 
+    def cancel_pending_dbus_methods(self):
+        self.cancellable.cancel()
+        # Cancel op is applied as a signal coming from glib mainloop, so we
+        # need to run it and wait for the callbacks to handle cancellations.
+        poll_glib()
+
     def power_cycle(self):
         'Power the modem and put it online, power cycle it if it was already on'
         if self.is_powered():
@@ -517,6 +520,8 @@
         'Connect to MCC+MNC'
         if (mcc_mnc is not None) and (len(mcc_mnc) != 2 or None in mcc_mnc):
             raise log.Error('mcc_mnc value is invalid. It should be None or contain both valid mcc and mnc values:', mcc_mnc=mcc_mnc)
+        # if test called connect() before and async scanning has not finished, we need to get rid of it:
+        self.cancel_pending_dbus_methods()
         self.power_cycle()
         self.register_attempts = 0
         if self.is_connected(mcc_mnc):
diff --git a/suites/aoip_encryption/register_a5_0_authreq.py b/suites/aoip_encryption/register_a5_0_authreq.py
index be8f8a1..051f5e2 100755
--- a/suites/aoip_encryption/register_a5_0_authreq.py
+++ b/suites/aoip_encryption/register_a5_0_authreq.py
@@ -31,7 +31,7 @@
 print('Attempt connection with wrong KI...')
 ms.connect(msc.mcc_mnc())
 
-sleep(30) # TODO: read pcap or CTRL interface and look for Rejected? (gsm_a.dtap.msg_mm_type == 0x04)
+sleep(40) # TODO: read pcap or CTRL interface and look for Rejected? (gsm_a.dtap.msg_mm_type == 0x04)
 print('Asserting modem did not register')
 # FIXME: this can fail because ofono qmi signals registered before being accepted by network. See OS#2458
 # assert not ms.is_connected(msc.mcc_mnc())
diff --git a/suites/aoip_encryption/register_a5_1_authreq.py b/suites/aoip_encryption/register_a5_1_authreq.py
index dd41348..11ee006 100755
--- a/suites/aoip_encryption/register_a5_1_authreq.py
+++ b/suites/aoip_encryption/register_a5_1_authreq.py
@@ -31,7 +31,7 @@
 print('Attempt connection with wrong KI...')
 ms.connect(msc.mcc_mnc())
 
-sleep(30) # TODO: read pcap or CTRL interface and look for Rejected? (gsm_a.dtap.msg_mm_type == 0x04)
+sleep(40) # TODO: read pcap or CTRL interface and look for Rejected? (gsm_a.dtap.msg_mm_type == 0x04)
 print('Asserting modem did not register')
 # FIXME: this can fail because ofono qmi signals registered before being accepted by network. See OS#2458
 # assert not ms.is_connected(msc.mcc_mnc())
