diff --git a/src/driver/nbiot.be b/src/driver/nbiot.be
index 6811117c3f1c529bc129b1dd7c84b9d2cb66042c..000e6a9df474dd66f129d1f47b8eeb0bbad17864 100644
--- a/src/driver/nbiot.be
+++ b/src/driver/nbiot.be
@@ -228,7 +228,7 @@ class NBIoTResetProcedure : NBIoTProcedure
   def init(ser)
     super(self).init(ser)
 
-    self.cmd_reset = NBIoTCommand('AT+QRST=1\r\n', 'RDY')
+    self.cmd_reset = NBIoTCommand('AT+QRST=1\r\n', 'RDY', 10)
     self.cmd_at = NBIoTCommand('AT\r\n', 'OK')
   end
 
@@ -242,6 +242,8 @@ class NBIoTResetProcedure : NBIoTProcedure
     elif self.cmd_in_process == self.cmd_at
       self.done = self.read_rsp_contains_expected_rsp_or_send()
     end
+
+    self.aborted = self.retries_exceeded()
   end
 end
 
@@ -543,6 +545,8 @@ class NBIoTDriver
         else
           self.next_state(NBIoTDriverState.DISABLE_PSM)
         end
+      elif self.procedure.is_aborted()
+        self.next_state(NBIoTDriverState.INIT)
       end
     elif self.state == NBIoTDriverState.DISABLE_PSM
       if self.procedure == nil