diff --git a/source/Lib/CommonLib/Picture.cpp b/source/Lib/CommonLib/Picture.cpp
index 0b2f589b5d84cccc8fe0b0bef4da389e00d4a57a..2d1b8772162a57afd4402f53c2133cb616b47aec 100644
--- a/source/Lib/CommonLib/Picture.cpp
+++ b/source/Lib/CommonLib/Picture.cpp
@@ -295,8 +295,10 @@ void Picture::createTempBuffers( const unsigned _maxCUSize )
   for( int jId = 0; jId < scheduler.getNumPicInstances(); jId++ )
 #endif
   {
-    M_BUFS( jId, PIC_PREDICTION                   ).create( chromaFormat, a,   _maxCUSize );
-    M_BUFS( jId, PIC_RESIDUAL                     ).create( chromaFormat, a,   _maxCUSize );
+    if (M_BUFS( jId, PIC_PREDICTION).bufs.empty())
+      M_BUFS( jId, PIC_PREDICTION                   ).create( chromaFormat, a,   _maxCUSize );
+    if (M_BUFS( jId, PIC_RESIDUAL).bufs.empty())
+      M_BUFS( jId, PIC_RESIDUAL                     ).create( chromaFormat, a,   _maxCUSize );
 #if NNVC_USE_PRED
     const Area aTemp( Position{ 0, 0 }, lumaSize() );
     if (getPredBufCustom().bufs.empty())