Index: /branches/HM-10.0-dev-SHM/source/Lib/TLibCommon/TComPic.cpp
===================================================================
--- /branches/HM-10.0-dev-SHM/source/Lib/TLibCommon/TComPic.cpp	(revision 98)
+++ /branches/HM-10.0-dev-SHM/source/Lib/TLibCommon/TComPic.cpp	(revision 99)
@@ -736,5 +736,5 @@
       }
     }
-    memset( pcCUDes->getPartitionSize(), SIZE_2Nx2N, sizeof(char)*numPartitions);
+    memset( pcCUDes->getPartitionSize(), SIZE_2Nx2N, sizeof(Char)*numPartitions);
   }
 }
Index: /branches/HM-10.0-dev-SHM/source/Lib/TLibCommon/TComSlice.cpp
===================================================================
--- /branches/HM-10.0-dev-SHM/source/Lib/TLibCommon/TComSlice.cpp	(revision 98)
+++ /branches/HM-10.0-dev-SHM/source/Lib/TLibCommon/TComSlice.cpp	(revision 99)
@@ -2155,21 +2155,22 @@
   {
     RefPicList refPicList = RefPicList( refList );
-
-    //initialize reference POC of ILP 
-    for(Int refIdx = 0; refIdx < MAX_NUM_REF; refIdx++) 
+    
+    //set reference POC of ILP
+    ilpPic[0]->getSlice(0)->setNumRefIdx(refPicList, pcRefPicBL->getSlice(0)->getNumRefIdx(refPicList));
+    assert(ilpPic[0]->getSlice(0)->getNumRefIdx(refPicList) >= 0);
+    assert(ilpPic[0]->getSlice(0)->getNumRefIdx(refPicList) <= MAX_NUM_REF);
+
+    //initialize reference POC of ILP
+    for(Int refIdx = 0; refIdx < pcRefPicBL->getSlice(0)->getNumRefIdx(refPicList); refIdx++)
+    {
+      ilpPic[0]->getSlice(0)->setRefPOC(pcRefPicBL->getSlice(0)->getRefPOC(refPicList, refIdx), refPicList, refIdx);
+      ilpPic[0]->getSlice(0)->setRefPic(pcRefPicBL->getSlice(0)->getRefPic(refPicList, refIdx), refPicList, refIdx);
+    }
+
+    for(Int refIdx = pcRefPicBL->getSlice(0)->getNumRefIdx(refPicList); refIdx < MAX_NUM_REF; refIdx++) 
     { 
       ilpPic[0]->getSlice(0)->setRefPOC(0, refPicList, refIdx); 
       ilpPic[0]->getSlice(0)->setRefPic(NULL, refPicList, refIdx); 
     }
-
-    //set reference POC of ILP 
-    ilpPic[0]->getSlice(0)->setNumRefIdx(refPicList, pcRefPicBL->getSlice(0)->getNumRefIdx(refPicList));
-    assert(ilpPic[0]->getSlice(0)->getNumRefIdx(refPicList) <= MAX_NUM_REF); 
-
-    for(Int refIdx = 0; refIdx < pcRefPicBL->getSlice(0)->getNumRefIdx(refPicList); refIdx++) 
-    {
-      ilpPic[0]->getSlice(0)->setRefPOC(pcRefPicBL->getSlice(0)->getRefPOC(refPicList, refIdx), refPicList, refIdx); 
-      ilpPic[0]->getSlice(0)->setRefPic(pcRefPicBL->getSlice(0)->getRefPic(refPicList, refIdx), refPicList, refIdx); 
-    }
   }
   return;
Index: /branches/HM-10.0-dev-SHM/source/Lib/TLibEncoder/TEncGOP.cpp
===================================================================
--- /branches/HM-10.0-dev-SHM/source/Lib/TLibEncoder/TEncGOP.cpp	(revision 98)
+++ /branches/HM-10.0-dev-SHM/source/Lib/TLibEncoder/TEncGOP.cpp	(revision 99)
@@ -564,25 +564,17 @@
 
 #if REF_IDX_MFM
-      pcSlice->setRefPOCListILP(m_pcEncTop->getIlpList(), pcSlice->getBaseColPic());
+      if( pcSlice->getSPS()->getMFMEnabledFlag() )
+      {
+        pcSlice->setRefPOCListILP(m_pcEncTop->getIlpList(), pcSlice->getBaseColPic());
+      }
 #endif
       pcSlice->addRefPicList ( m_pcEncTop->getIlpList(), 1);
 
 #if REF_IDX_MFM
-      Bool found         = false;
-      UInt ColFromL0Flag = pcSlice->getColFromL0Flag();
-      UInt ColRefIdx     = pcSlice->getColRefIdx();
-      for(Int colIdx = 0; colIdx < pcSlice->getNumRefIdx( RefPicList(1 - ColFromL0Flag) ); colIdx++) 
-      { 
-        if( pcSlice->getRefPic( RefPicList(1 - ColFromL0Flag), colIdx)->isILR() ) 
-        { 
-          ColRefIdx = colIdx; 
-          found = true;
-          break; 
-        }
-      }
-
-      if( found == false )
-      {
-        ColFromL0Flag = 1 - ColFromL0Flag;
+      if( pcSlice->getSPS()->getMFMEnabledFlag() )
+      {
+        Bool found         = false;
+        UInt ColFromL0Flag = pcSlice->getColFromL0Flag();
+        UInt ColRefIdx     = pcSlice->getColRefIdx();
         for(Int colIdx = 0; colIdx < pcSlice->getNumRefIdx( RefPicList(1 - ColFromL0Flag) ); colIdx++) 
         { 
@@ -590,14 +582,28 @@
           { 
             ColRefIdx = colIdx; 
-            found = true; 
+            found = true;
             break; 
-          } 
-        }
-      }
-
-      if(found == true)
-      {
-        pcSlice->setColFromL0Flag(ColFromL0Flag);
-        pcSlice->setColRefIdx(ColRefIdx);
+          }
+        }
+
+        if( found == false )
+        {
+          ColFromL0Flag = 1 - ColFromL0Flag;
+          for(Int colIdx = 0; colIdx < pcSlice->getNumRefIdx( RefPicList(1 - ColFromL0Flag) ); colIdx++) 
+          { 
+            if( pcSlice->getRefPic( RefPicList(1 - ColFromL0Flag), colIdx)->isILR() ) 
+            { 
+              ColRefIdx = colIdx; 
+              found = true; 
+              break; 
+            } 
+          }
+        }
+
+        if(found == true)
+        {
+          pcSlice->setColFromL0Flag(ColFromL0Flag);
+          pcSlice->setColRefIdx(ColRefIdx);
+        }
       }
 #endif
