diff --git a/src/backends/backendsCommon/WorkloadFactory.cpp b/src/backends/backendsCommon/WorkloadFactory.cpp
index 61ad209..dc70e6a 100644
--- a/src/backends/backendsCommon/WorkloadFactory.cpp
+++ b/src/backends/backendsCommon/WorkloadFactory.cpp
@@ -834,6 +834,9 @@
             LstmInputParamsInfo paramsInfo;
 
             // Basic parameters
+            ARMNN_ASSERT(cLayer->m_BasicParameters.m_InputToForgetWeights.get() != nullptr);
+            ARMNN_ASSERT(cLayer->m_BasicParameters.m_InputToCellWeights.get() != nullptr);
+            ARMNN_ASSERT(cLayer->m_BasicParameters.m_InputToOutputWeights.get() != nullptr);
             paramsInfo.m_InputToForgetWeights = &cLayer->m_BasicParameters.m_InputToForgetWeights->GetTensorInfo();
             paramsInfo.m_InputToCellWeights   = &cLayer->m_BasicParameters.m_InputToCellWeights->GetTensorInfo();
             paramsInfo.m_InputToOutputWeights = &cLayer->m_BasicParameters.m_InputToOutputWeights->GetTensorInfo();
diff --git a/src/backends/backendsCommon/test/IsLayerSupportedTestImpl.hpp b/src/backends/backendsCommon/test/IsLayerSupportedTestImpl.hpp
index adc7bc4..ddd6eac 100644
--- a/src/backends/backendsCommon/test/IsLayerSupportedTestImpl.hpp
+++ b/src/backends/backendsCommon/test/IsLayerSupportedTestImpl.hpp
@@ -300,7 +300,7 @@
         typename LstmLayerType::DescriptorType desc;
         desc.m_CifgEnabled = false;
 
-        m_Layer = dummyGraph.AddLayer<LstmLayerType>(armnn::LstmDescriptor(), "");
+        m_Layer = dummyGraph.AddLayer<LstmLayerType>(desc, "");
         m_Layer->m_BasicParameters.m_InputToForgetWeights     = std::make_unique<armnn::ScopedTensorHandle>(
                 armnn::TensorInfo(armnn::TensorShape({1,1,1,1}), armnn::DataType::Float32));
         m_Layer->m_BasicParameters.m_InputToCellWeights       = std::make_unique<armnn::ScopedTensorHandle>(
@@ -342,18 +342,18 @@
 {
 };
 
-template <typename QLstmLayerType>
-struct DummyQLstmLayer
+template<>
+struct DummyLayer<armnn::QLstmLayer>
 {
-    DummyQLstmLayer()
+    DummyLayer()
     {
-        typename QLstmLayerType::DescriptorType desc;
+        armnn::QLstmLayer::DescriptorType desc;
         desc.m_CifgEnabled = false;
         desc.m_PeepholeEnabled = true;
         desc.m_ProjectionEnabled = true;
         desc.m_LayerNormEnabled = true;
 
-        m_Layer = dummyGraph.AddLayer<QLstmLayerType>(armnn::QLstmDescriptor(), "qLstm");
+        m_Layer = dummyGraph.AddLayer<armnn::QLstmLayer>(desc, "qLstm");
 
         // Basic params
         m_Layer->m_BasicParameters.m_InputToForgetWeights     = std::make_unique<armnn::ScopedTensorHandle>(
@@ -410,7 +410,7 @@
                 armnn::TensorInfo(armnn::TensorShape({1,1,1,1}), armnn::DataType::QSymmS16));
     }
 
-    ~DummyQLstmLayer()
+    ~DummyLayer()
     {
         dummyGraph.EraseLayer(m_Layer);
     }
