diff --git a/source/Lib/CommonLib/UnitTools.cpp b/source/Lib/CommonLib/UnitTools.cpp
index 4d849bd65cac57a8a9998bb0a67cc3adfa75e74a..22ca8c8011bc3b626fc7a566b1de0b4530f5b71c 100644
--- a/source/Lib/CommonLib/UnitTools.cpp
+++ b/source/Lib/CommonLib/UnitTools.cpp
@@ -4457,6 +4457,10 @@ void PU::spanMotionInfo( PredictionUnit &pu, const MergeCtx &mrgCtx )
           subPuIdx++;
           MotionBuf mb = pu.cs->getMotionBuf(Area(pu.lx() + xStart, pu.ly() + yStart, dx, dy));
           mb.fill(mi);
+#if JVET_W0123_TIMD_FUSION
+          IpmBuf ib2 = pu.cs->getIpmBuf(Area(pu.lx() + xStart, pu.ly() + yStart, dx, dy));
+          spanIpmInfoInter(pu, mb, ib2);
+#endif
         }
         subPuIdx += bioSubPuIdxStrideIncr;
       }
@@ -4631,8 +4635,8 @@ void PU::spanIpmInfoInter( PredictionUnit &pu, MotionBuf &mb, IpmBuf &ib)
   Picture* pRefPic0;
   Picture* pRefPic1;
   uint8_t* ii = ib.buf;
-  int ibH = pu.Y().height >> MIN_CU_LOG2;
-  int ibW = pu.Y().width >> MIN_CU_LOG2;
+  int ibH = mb.height;
+  int ibW = mb.width;
   for (int y = 0; y < ibH; y++)
   {
     for (int x = 0; x < ibW; x++)