diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index b59bac60..05df2c9 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -402,7 +402,8 @@
         descriptor.m_ClippingThresProj,
         descriptor.m_CifgEnabled,
         descriptor.m_PeepholeEnabled,
-        descriptor.m_ProjectionEnabled);
+        descriptor.m_ProjectionEnabled,
+        descriptor.m_LayerNormEnabled);
 
     // Get mandatory input parameters
     auto inputToForgetWeights = CreateConstTensorInfo(*params.m_InputToForgetWeights);
@@ -424,6 +425,10 @@
     flatbuffers::Offset<serializer::ConstTensor> projectionBias;
     flatbuffers::Offset<serializer::ConstTensor> cellToForgetWeights;
     flatbuffers::Offset<serializer::ConstTensor> cellToOutputWeights;
+    flatbuffers::Offset<serializer::ConstTensor> inputLayerNormWeights;
+    flatbuffers::Offset<serializer::ConstTensor> forgetLayerNormWeights;
+    flatbuffers::Offset<serializer::ConstTensor> cellLayerNormWeights;
+    flatbuffers::Offset<serializer::ConstTensor> outputLayerNormWeights;
 
     if (!descriptor.m_CifgEnabled)
     {
@@ -445,6 +450,17 @@
         cellToOutputWeights = CreateConstTensorInfo(*params.m_CellToOutputWeights);
     }
 
+    if (descriptor.m_LayerNormEnabled)
+    {
+        if (!descriptor.m_CifgEnabled)
+        {
+            inputLayerNormWeights = CreateConstTensorInfo((*params.m_InputLayerNormWeights));
+        }
+        forgetLayerNormWeights = CreateConstTensorInfo(*params.m_ForgetLayerNormWeights);
+        cellLayerNormWeights   = CreateConstTensorInfo(*params.m_CellLayerNormWeights);
+        outputLayerNormWeights = CreateConstTensorInfo(*params.m_OutputLayerNormWeights);
+    }
+
     auto fbLstmParams = serializer::CreateLstmInputParams(
         m_flatBufferBuilder,
         inputToForgetWeights,
@@ -463,7 +479,11 @@
         projectionWeights,
         projectionBias,
         cellToForgetWeights,
-        cellToOutputWeights);
+        cellToOutputWeights,
+        inputLayerNormWeights,
+        forgetLayerNormWeights,
+        cellLayerNormWeights,
+        outputLayerNormWeights);
 
     auto fbLstmLayer = serializer::CreateLstmLayer(
         m_flatBufferBuilder,
