diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp
index 9b7a242..dbd1158 100644
--- a/src/backends/backendsCommon/WorkloadData.cpp
+++ b/src/backends/backendsCommon/WorkloadData.cpp
@@ -1120,7 +1120,6 @@
     ValidateDataTypes(outputTensorInfo, supportedTypes, descriptorName);
 
     ValidateTensorDataTypesMatch(inputTensorInfo, outputTensorInfo, descriptorName, "input", "output");
-    ValidateTensorQuantizationSpace(inputTensorInfo, outputTensorInfo, descriptorName, "input", "output");
     ValidateTensorShapesMatch(inputTensorInfo, outputTensorInfo, descriptorName, "input", "output");
 
     ValidatePointer(m_Mean,     descriptorName, "mean");
diff --git a/src/backends/backendsCommon/test/WorkloadDataValidation.cpp b/src/backends/backendsCommon/test/WorkloadDataValidation.cpp
index 5c60e9e..d48a2bb 100644
--- a/src/backends/backendsCommon/test/WorkloadDataValidation.cpp
+++ b/src/backends/backendsCommon/test/WorkloadDataValidation.cpp
@@ -19,7 +19,31 @@
 
 BOOST_AUTO_TEST_SUITE(WorkloadInfoValidation)
 
+BOOST_AUTO_TEST_CASE(BatchNormalizationQueueDescriptor_Validate_DifferentQuantizationData)
+{
+    TensorShape inputShape { 1, 3, 2, 2 };
+    TensorShape outputShape { 1, 3, 2, 2 };
 
+    TensorInfo inputTensorInfo(inputShape, armnn::DataType::QAsymmU8, .1f, 125);
+    TensorInfo outputTensorInfo(outputShape, armnn::DataType::QAsymmU8, .2f, 120);
+
+    BatchNormalizationQueueDescriptor invalidData;
+    WorkloadInfo                      invalidInfo;
+
+    unsigned int sameShape[] = { 10 };
+    TensorInfo sameInfo = armnn::TensorInfo(1, sameShape, armnn::DataType::QAsymmU8);
+    ScopedCpuTensorHandle sameTensor(sameInfo);
+
+    AddInputToWorkload(invalidData, invalidInfo, inputTensorInfo, nullptr);
+    AddOutputToWorkload(invalidData, invalidInfo, outputTensorInfo, nullptr);
+
+    invalidData.m_Mean = &sameTensor;
+    invalidData.m_Variance = &sameTensor;
+    invalidData.m_Beta= &sameTensor;
+    invalidData.m_Gamma = &sameTensor;
+
+    BOOST_CHECK_NO_THROW(RefBatchNormalizationWorkload(invalidData, invalidInfo));
+}
 
 BOOST_AUTO_TEST_CASE(QueueDescriptor_Validate_WrongNumOfInputsOutputs)
 {
