diff --git a/scripts/get_compute_library.sh b/scripts/get_compute_library.sh
index 14c0fcc..964e441 100755
--- a/scripts/get_compute_library.sh
+++ b/scripts/get_compute_library.sh
@@ -10,7 +10,7 @@
 #DEFAULT_CLFRAMEWORKREVISION="branches/arm_compute_20_05" # Release 20.05
 #
 # For pinning to a revision use this:
-DEFAULT_CLFRAMEWORKREVISION="6b6a16faa9375365d444b2a3998381b22cd6cd5b" #COMPMID-3501 Modify heuristics for f16+fastmath NEON Winograd Conv
+DEFAULT_CLFRAMEWORKREVISION="40aad9bbbae5308d7302e61e1372328c9b5daf99" #COMPMID-3600: Fix requantization in NEPixelWiseMultiplicationKernel
 
 usage() {
     echo "Usage: $CMD (Use the default clframework SHA)"
diff --git a/src/backends/cl/workloads/ClConcatWorkload.cpp b/src/backends/cl/workloads/ClConcatWorkload.cpp
index e0aebd3..da0d675 100644
--- a/src/backends/cl/workloads/ClConcatWorkload.cpp
+++ b/src/backends/cl/workloads/ClConcatWorkload.cpp
@@ -36,7 +36,7 @@
         aclInputs.emplace_back(aclInputInfo);
     }
     const arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output);
-    std::vector<arm_compute::ITensorInfo*> aclInputPtrs;
+    std::vector<const arm_compute::ITensorInfo*> aclInputPtrs;
     for (arm_compute::ITensorInfo& input : aclInputs)
     {
         aclInputPtrs.emplace_back(&input);
@@ -68,7 +68,7 @@
         return;
     }
 
-    std::vector<arm_compute::ICLTensor *> aclInputs;
+    std::vector<const arm_compute::ICLTensor *> aclInputs;
     for (auto input : m_Data.m_Inputs)
     {
         arm_compute::ICLTensor& aclInput  = armnn::PolymorphicPointerDowncast<IClTensorHandle>(input)->GetTensor();
diff --git a/src/backends/neon/workloads/NeonConcatWorkload.cpp b/src/backends/neon/workloads/NeonConcatWorkload.cpp
index 65678aa..a8f6dbe 100644
--- a/src/backends/neon/workloads/NeonConcatWorkload.cpp
+++ b/src/backends/neon/workloads/NeonConcatWorkload.cpp
@@ -36,7 +36,7 @@
         aclInputs.emplace_back(aclInputInfo);
     }
     const arm_compute::TensorInfo aclOutputInfo = BuildArmComputeTensorInfo(output);
-    std::vector<arm_compute::ITensorInfo*> aclInputPtrs;
+    std::vector<const arm_compute::ITensorInfo*> aclInputPtrs;
     for (arm_compute::ITensorInfo& input : aclInputs)
     {
         aclInputPtrs.emplace_back(&input);
@@ -69,7 +69,7 @@
         return;
     }
 
-    std::vector<arm_compute::ITensor *> aclInputs;
+    std::vector<const arm_compute::ITensor *> aclInputs;
     for (auto input : m_Data.m_Inputs)
     {
         arm_compute::ITensor& aclInput  = armnn::PolymorphicPointerDowncast<IAclTensorHandle>(input)->GetTensor();
