diff --git a/src/opcua/ua_server.cpp b/src/opcua/ua_server.cpp
index c43737252587b89e2522b33985d46ccea34ada4f..0e8ddd4957568985632eacc421ccb5c7a0ecad3a 100644
--- a/src/opcua/ua_server.cpp
+++ b/src/opcua/ua_server.cpp
@@ -993,7 +993,7 @@ static void ua_add_Variable_boolean(UA_Server *server, const string regname, con
         LOG_F(INFO, "ua_add_variable_boolean array: regname=%s size=%u perm=%s", regname.c_str(), size, perm.c_str());
         vattr.valueRank = UA_VALUERANK_ONE_DIMENSION;
 
-        UA_UInt32 myArrayDimensions[1] = {(uint32_t)size};
+        UA_UInt32 myArrayDimensions[1] = {size};
         vattr.arrayDimensions = myArrayDimensions;
         vattr.arrayDimensionsSize = 1;
         
@@ -1004,7 +1004,7 @@ static void ua_add_Variable_boolean(UA_Server *server, const string regname, con
             values[i] = false;
         }
 
-        UA_Variant_setArrayCopy(&vattr.value, values, size, &UA_TYPES[UA_TYPES_BOOLEAN]);
+        UA_Variant_setArray(&vattr.value, values, size, &UA_TYPES[UA_TYPES_BOOLEAN]);
         vattr.value.arrayDimensions = myArrayDimensions;
         vattr.value.arrayDimensionsSize = 1;
         
@@ -1023,13 +1023,10 @@ static void ua_add_Variable_boolean(UA_Server *server, const string regname, con
                                                                UA_QUALIFIEDNAME(mUaLofarNameSpace, (char *)regname.c_str()), // node browse name
                                                                UA_NODEID_NUMERIC(0, UA_NS0ID_BASEDATAVARIABLETYPE),
                                                                vattr, DataSource, NULL, NULL);
-    if (retval != UA_STATUSCODE_GOOD)
-    {
+    if (retval != UA_STATUSCODE_GOOD) {
         // handle error
         LOG_F(ERROR, "Error adding Boolean node");
     }
-    if (values)
-        UA_Array_delete(values, size, &UA_TYPES[UA_TYPES_BOOLEAN]);
 }
 /* end of ua_add_Variable_[data_type]() functions */