diff --git a/source/App/SubpicMergeApp/SubpicMergeApp.cpp b/source/App/SubpicMergeApp/SubpicMergeApp.cpp
index 6494ac497317f5d414b9c2664427c97cdd0d8460..5f4ce53cbb7ad6e1ae36f56d6adad797f615cd94 100644
--- a/source/App/SubpicMergeApp/SubpicMergeApp.cpp
+++ b/source/App/SubpicMergeApp/SubpicMergeApp.cpp
@@ -535,7 +535,7 @@ void SubpicMergeApp::generateMergedStreamSPSes(std::vector<SPS*> &spsList)
     sps.setMaxPicHeightInLumaSamples(m_picHeight);
 
     sps.setSubPicInfoPresentFlag(true);
-    sps.setNumSubPics((uint8_t)numSubPics);
+    sps.setNumSubPics((uint32_t)numSubPics);
     sps.setSubPicIdLen(computeSubPicIdLen(numSubPics + 1));
     sps.setSubPicIdMappingExplicitlySignalledFlag(true);
     sps.setSubPicIdMappingPresentFlag(true);
@@ -553,7 +553,7 @@ void SubpicMergeApp::generateMergedStreamSPSes(std::vector<SPS*> &spsList)
       sps.setSubPicHeight(subPicId, (uint32_t)(subpic.height / sps.getCTUSize()));
       sps.setSubPicTreatedAsPicFlag(subPicId, true);
       sps.setLoopFilterAcrossSubpicEnabledFlag(subPicId, false);
-      sps.setSubPicId(subPicId, (uint8_t)subPicId);
+      sps.setSubPicId(subPicId, (uint16_t)subPicId);
       subPicId++;
     }
   }