diff --git a/pypcc2.py b/pypcc2.py
index c0935e27d27a7b459a56600a096fb17c74fc6cb1..054f2bb1430868ddb4e600302a0b620635603404 100644
--- a/pypcc2.py
+++ b/pypcc2.py
@@ -24,7 +24,6 @@ if not isinstance(loglevel_nr, int):
 
 logging.basicConfig(level=loglevel_nr,format='%(asctime)s [%(levelname)-8s,%(filename)-20s:%(lineno)-3d] %(message)s')
 
-
 RunTimer=True;
 def signal_handler(sig, frame):
     logging.warn('Stop signal received!')
@@ -32,29 +31,29 @@ def signal_handler(sig, frame):
     RunTimer=False
 signal.signal(signal.SIGINT, signal_handler)
 
-
-#Initialise OPCUA server
-logging.info("Initialised OPC-UA Server")   
-opcuaserv.InitServer(port=args.port)
-
-
-logging.info("Start threads")   
+#Start i2c processes as soon as possible to have minimum duplication
+logging.info("Start I2C processes")   
 I2Cports=['RCU']
 #I2Cports=[]
 threads=[]
 I2Cclients=[]
 for name in I2Cports:
-    logging.info("Start I2C server process...")   
     RCU_I2C=i2client.i2client(name=name)
     thread1=i2cthread.start(*RCU_I2C.GetInfo())
     threads.append(thread1)
     I2Cclients.append(RCU_I2C)
 
+#Initialise OPCUA server
+logging.info("Initialised OPC-UA Server")   
+opcuaserv.InitServer(port=args.port)
+
+logging.info("Load OPCUA variables & start i2c listing thread")   
+for i,name in enumerate(I2Cports):
+    RCU_I2C=I2Cclients[i]
     RCU_conf=yamlreader.yamlreader(RCU_I2C,yamlfile=name)
     RCU_conf.AddVars(opcuaserv.AddVarR,opcuaserv.AddVarW)
     RCU_conf.AddMethod(opcuaserv.Addmethod)
 
-    logging.info("Start listing thread...")   
     thread2=threading.Thread(target=RCU_conf.getvar); #Thread on OPC-UA side of pipe
     thread2.start()
     threads.append(thread2)