diff --git a/conman/connection_manager.py b/conman/connection_manager.py
index fb01acf..333e050 100755
--- a/conman/connection_manager.py
+++ b/conman/connection_manager.py
@@ -468,7 +468,6 @@
 
     for wifi in self.wifi:
       continue_wifi = False
-      provisioning_failed = self.provisioning_failed(wifi)
       if self.currently_provisioning(wifi):
         continue
 
@@ -960,6 +959,7 @@
       wifi.provisioning_ratchet.check()
       if wifi.provisioning_ratchet.done_after:
         wifi.status.provisioning_completed = True
+        wifi.provisioning_ratchet.stop()
         logging.info('%s successfully provisioned', wifi.name)
       return False
     except ratchet.TimeoutException:
diff --git a/conman/ratchet.py b/conman/ratchet.py
index 07e61a8..9c32ef2 100644
--- a/conman/ratchet.py
+++ b/conman/ratchet.py
@@ -146,6 +146,7 @@
 
   def reset(self):
     self._current_step = 0
+    self.active = False
     for step in self.steps:
       step.reset()
       self._set_step_status(step, False)
@@ -153,11 +154,18 @@
 
   def start(self):
     self.reset()
+    self.active = True
     self._set_current_step_status(True)
 
+  def stop(self):
+    self.active = False
+
   # Override check rather than evaluate because we don't want the Ratchet to
   # time out unless one of its steps does.
   def check(self):
+    if not self.active:
+      return
+
     if not self.done_after:
       while self.current_step().check():
         if not self.advance():
diff --git a/conman/ratchet_test.py b/conman/ratchet_test.py
index 97f7c94..79bdbfb 100755
--- a/conman/ratchet_test.py
+++ b/conman/ratchet_test.py
@@ -122,7 +122,7 @@
     wvtest.WVEXCEPT(ratchet.TimeoutException, r.check)
 
     x = y = z = 1
-    r.reset()
+    r.start()
     wvtest.WVPASS(r.check())
   finally:
     shutil.rmtree(status_export_path)
