diff --git a/RCUSCC/RCUSCC/RCUSCC.py b/RCUSCC/RCUSCC/RCUSCC.py
index c550c64778de49496d1c58505da3b385ee5aa1e3..64e0efc22a13bde605ce3f91dcbef13deecb18e1 100644
--- a/RCUSCC/RCUSCC/RCUSCC.py
+++ b/RCUSCC/RCUSCC/RCUSCC.py
@@ -62,8 +62,6 @@ def fault_on_opcua_error(func):
         except Exception as e:
             self.error_stream("Communication with the OPC-UA server %s:%d failed. Reconnecting. Trace: %s" % (self.OPC_Server_Name, self.OPC_Server_Port, traceback.format_exc()))
             self.Fault()
-            self.opcua_connector.reconnect()
-
             return None
 
     return opcua_error_wrapper
@@ -93,14 +91,15 @@ class BackgroundConnector(Thread):
             self.connected = True
         except socket.error as e:
             self.debug_stream("Could not connect: %s" % (e,))
-        finally:
-            self.connecting = False
 
     def run(self):
-        while not self.connected and not self.stopping:
-            self.try_connect()
-            if not self.connected:
-                time.sleep(self.try_interval)
+        try:
+            while not self.connected and not self.stopping:
+                self.try_connect()
+                if not self.connected:
+                    time.sleep(self.try_interval)
+        finally:
+            self.connecting = False
 
     def stop(self):
         self.stopping = True
@@ -358,6 +357,7 @@ class RCUSCC(Device):
     def init_device(self):
         """Initialises the attributes and properties of the RCUSCC."""
         Device.init_device(self)
+
         # PROTECTED REGION ID(RCUSCC.init_device) ENABLED START #
         self.set_state(DevState.INIT)
 
@@ -400,17 +400,11 @@ class RCUSCC(Device):
         self.attribute_mapping["Temperature_R"] = {}
 
 
-        # Set defaults to property values.
-
-        try:
-            # Connect to OPC-UA
-            self.opcua_connector = BackgroundReconnector(self._init_opcua, self._disconnect, self.debug_stream)
-            if not self.opcua_connector.wait_connected(5.0): # allow 5 seconds to connect
-                self.Fault()
-        except Exception as e:
-            self.error_stream("Connection init to the OPC-UA server %s:%d failed.  Trace: %s" % (self.OPC_Server_Name, self.OPC_Server_Port, traceback.format_exc()))
+        # Connect to OPC-UA -- will set ON state on success
+        self.opcua_connector = BackgroundReconnector(self._init_opcua, self._disconnect, self.debug_stream)
+        if not self.opcua_connector.wait_connected(5.0): # allow 5 seconds to connect
             self.Fault()
-            raise e
+
         # PROTECTED REGION END #    //  RCUSCC.init_device
 
     def always_executed_hook(self):
@@ -438,10 +432,6 @@ class RCUSCC(Device):
         # PROTECTED REGION ID(RCUSCC.delete_device) ENABLED START #
         self.debug_stream("Shutting down...")
 
-        # stop reconnecting before disconnect
-        self.opcua_connector.stop()
-        self._disconnect()
-
         self.Off()
         self.debug_stream("Shut down.  Good bye.")
         # PROTECTED REGION END #    //  RCUSCC.delete_device
@@ -616,19 +606,12 @@ class RCUSCC(Device):
         :return:None
         """
         self.set_state(DevState.OFF)
-        # PROTECTED REGION END #    //  RCUSCC.Off
 
-    @command(
-    )
-    @DebugIt()
-    def Init(self):
-        # PROTECTED REGION ID(RCUSCC.Init) ENABLED START #
-        """
+        # stop reconnecting before disconnect
+        self.opcua_connector.stop()
+        self._disconnect()
 
-        :return:None
-        """
-        self.set_state(DevState.INIT)
-        # PROTECTED REGION END #    //  RCUSCC.Init
+        # PROTECTED REGION END #    //  RCUSCC.Off
 
     @command(
     )
@@ -636,10 +619,17 @@ class RCUSCC(Device):
     def Fault(self):
         # PROTECTED REGION ID(RCUSCC.On) ENABLED START #
         """
+        FAULT state is used to indicate our connection with the OPC-UA server is down.
+
+        This device will try to reconnect, and transition to the ON state on success.
 
         :return:None
         """
         self.set_state(DevState.FAULT)
+
+        # try to reconnect
+        self.opcua_connector.reconnect()
+
         # PROTECTED REGION END #    //  RCUSCC..On
 
     @command(