diff --git a/config/RCU.yaml b/config/RCU.yaml
index ba37d23aeddaa7604f29eacdb1c01752ab11d74c..26727f062b51df8eea83cbfa4736e838a5c4cb71 100644
--- a/config/RCU.yaml
+++ b/config/RCU.yaml
@@ -210,6 +210,7 @@ variables:
 
    - name: RCU_state
      description: State of RCUs 0=unknown, 1=ready, 2=busy, 3= wait PPS, 4=error
+     driver: I2C_RCU
      rw:  variable #server variable, not linked to IO
      dtype: uint8
      dim: 1
@@ -360,9 +361,7 @@ methods:
 #    - IO3.GPIO1: Update
 #    - IO3.GPIO2: Update
     - IO3.CONF1: Update
-    - RCU_mask: True
     - RCU_update: 0
-    - RCU_mask: False
     - RCU_state: 1
 
   - name: RCU_on
diff --git a/i2cserv/i2c_dev.py b/i2cserv/i2c_dev.py
index bcf8ba90079d65a6add312c1793f1b4ba142007a..ef0651f9d4834ecb8a9d09a120f85da6e6603ffd 100644
--- a/i2cserv/i2c_dev.py
+++ b/i2cserv/i2c_dev.py
@@ -94,11 +94,11 @@ class i2c_dev(hwdev):
               if len(mask)==0: mask=[True]*len(data);
               if len(data)!=len(mask): 
                 logging.warn("Trying to set I2C OK with wrong mask length!")
-                return
+                return []
               for x,m in enumerate(mask):
                 if m: self.I2Cmask[x]=data[x];
                 return [OPCUAset(self.I2Cmaskid,InstType.varSet,self.I2Cmask.copy(),[])]
-          return;
+          return [OPCUAset(varid,InstType.varSet,data,mask)];
        logging.info(str(("Set Var",var1['name'],data,mask)))
        oldmask=self.I2Cmask.copy()
        data,mask2=self.SetGetVarValueMask(var1,data,mask);
diff --git a/i2cserv/i2cthread.py b/i2cserv/i2cthread.py
index 2d4bd445375c3bdbbf2eea31a004ac87d5230d19..05ae1a9267b5aa22c8ba4c84c43451d3a2929dfe 100644
--- a/i2cserv/i2cthread.py
+++ b/i2cserv/i2cthread.py
@@ -36,19 +36,23 @@ def runmethod(conf,Qout,methodid,mask):
         for key,value in inst.items():
             if not(isinstance(value,list)): value=[value]
             logging.info(str(("Run instruction",key,value,mask)));
+            if mask is None: mask=[]
             if (key=='WAIT'):
                 sleep(value[0]/1000.)
                 continue;
             v1=conf.getvarid(key)
             if v1: 
                 if value[0]=='Update':
-                   mask=getvar(conf,Qout,v1,mask)
+                   #mask=
+                   getvar(conf,Qout,v1,mask)
                 else:
-                   mask=setvar(conf,Qout,v1,value,mask)
+                   #mask=
+                   setvar(conf,Qout,v1,value,mask)
                 continue;
             v1=conf.getmethodid(key)
             if v1: 
-                mask=runmethod(conf,Qout,v1,mask)
+                #mask=
+                runmethod(conf,Qout,v1,mask)
                 continue;
             v1=conf.getdevreg(key)
             if v1: