diff --git a/pypcc/opcuaserv/opcuaserv.py b/pypcc/opcuaserv/opcuaserv.py
index e9644075d18d6b105be25a141ffdaa08b68398f0..ddedcee2ec6d5a61690f9d39d1b4e8354c8d28e6 100644
--- a/pypcc/opcuaserv/opcuaserv.py
+++ b/pypcc/opcuaserv/opcuaserv.py
@@ -6,7 +6,7 @@ import time
 #from opcua import ua, Server
 from asyncua.sync import ua, Server
 from datetime import datetime;
-from queue import Queue
+from queue import PriorityQueue
 import logging
 #import Vars
 #import HWconf
@@ -22,17 +22,17 @@ class SubHandler(object):
     Subscription Handler. To receive events from server for a subscription
     """
     def __init__(self):
-        self.datachange_queue=Queue()
+        self.datachange_queue=PriorityQueue()
     def check_datachange(self,timeout):
         while True:
             try:
-                node,val=self.datachange_queue.get(timeout=timeout)
+                _,val,node=self.datachange_queue.get(timeout=timeout)
             except:
                 break
             nodeid=node.nodeid.Identifier
             vname,myvar,v,reader,opcvar=Vars_W[nodeid]
     #        val=(val if isinstance(val, list) else [val] )
-            logging.info(str(("Datachange callback",nodeid,vname,val)))
+            logging.warn(str(("Datachange",vname,val[:16] if isinstance(val,list) else val)))
             node.set_value(ua.DataValue(val, ua.StatusCode(ua.StatusCodes.GoodCompletesAsynchronously)))
             for r in reader:
                 r.setvar(v,val)
@@ -41,10 +41,11 @@ class SubHandler(object):
 #       NOTE: OPC variables can not be updates in the datachange_notification when using asyncua.sync!! So we put them in a queue.
 #        print("Python: New data change event", node, val,data)
         if not(running): return
-        logging.info(str(("Datachange callback",node.nodeid.Identifier,data.monitored_item.Value.StatusCode)))
+        sourcetime=data.monitored_item.Value.SourceTimestamp
+        logging.info(str(("Datachange callback",node.nodeid.Identifier,None if sourcetime is None else sourcetime.timestamp(),data.monitored_item.Value.StatusCode)))
         if data.monitored_item.Value.StatusCode != ua.StatusCode(ua.StatusCodes.Good): return
 #            logging.warning(str(("Python: New client data change event", node, val, data.monitored_item.Value.StatusCode)))
-        self.datachange_queue.put([node,val])
+        self.datachange_queue.put((0 if sourcetime is None else sourcetime.timestamp(),val,node))
 #        myvar2.Value.Value=val
 #        myvar2.SourceTimestamp = datetime.utcnow()
 
diff --git a/pypcc/opcuaserv/yamlreader.py b/pypcc/opcuaserv/yamlreader.py
index 43bb376727a15283e46ea965c60f7fc05a904f00..f82d969d5948a9d771e225a9b78c56581c2707a5 100644
--- a/pypcc/opcuaserv/yamlreader.py
+++ b/pypcc/opcuaserv/yamlreader.py
@@ -190,7 +190,7 @@ class yamlreader(yamlconfig):
         if not(mask): continue;
         mask=Find(self.conf['variables'],'name',mask)
         if not(mask): continue;
-        mask=mask.get('OPCW',None)
+        mask=mask.get('OPCR',None)
         if (mask==None): continue;
         v['maskOPC']=mask
      if not self.monitorvarid is None: