Index: /branches/SHM-2.1-dev/source/Lib/TLibCommon/TComDataCU.cpp
===================================================================
--- /branches/SHM-2.1-dev/source/Lib/TLibCommon/TComDataCU.cpp	(revision 209)
+++ /branches/SHM-2.1-dev/source/Lib/TLibCommon/TComDataCU.cpp	(revision 210)
@@ -2532,47 +2532,52 @@
 #if SVC_MVP
   // BL collocated
-  TComDataCU *pcColCU = 0;
-  UInt uiCUAddrBase, uiAbsPartAddrBase ;
-  TComMvField cMvFieldBaseColCU[2];
-  if(m_layerId)  
-  {
-    pcColCU = getBaseColCU( xP + nPSW/2, yP + nPSH/2, uiCUAddrBase, uiAbsPartAddrBase );
-    
+  TComDataCU *pcColCU = NULL;
+  UInt uiCUAddrBase = 0, uiAbsPartAddrBase = 0;
+#if AVC_BASE
+  if( !this->getSlice()->getVPS()->getAvcBaseLayerFlag() || AVC_SYNTAX )
+#endif
+  {
+    TComMvField cMvFieldBaseColCU[2];
+    if(m_layerId)  
+    {
+      pcColCU = getBaseColCU( xP + nPSW/2, yP + nPSH/2, uiCUAddrBase, uiAbsPartAddrBase );
+
 #if INTRA_BL
-    if( pcColCU && pcColCU->isIntraBL( uiAbsPartAddrBase ) )
-    {
-      pcColCU = NULL;
-    }
-#endif
-    
-    if(pcColCU && !pcColCU->isIntra( uiAbsPartAddrBase ) )
-    {
-      abCandIsInter[iCount] = true;
-
-      // get interDir
-      puhInterDirNeighbours[iCount] = pcColCU->getInterDir( uiAbsPartAddrBase );
-
-      pcMvFieldNeighbours[(iCount << 1)].setMvField( TComMv(0,0), -1);
-      pcMvFieldNeighbours[(iCount << 1) + 1].setMvField( TComMv(0,0), -1);
-
-      if( puhInterDirNeighbours[iCount] & 1 )
-      {
-        pcColCU->getMvField( pcColCU, uiAbsPartAddrBase, REF_PIC_LIST_0, cMvFieldBaseColCU[0]);
-        scaleBaseMV( pcMvFieldNeighbours[iCount<<1], cMvFieldBaseColCU[0] );
-      }
-
-      if ( getSlice()->isInterB() && puhInterDirNeighbours[iCount] & 2 )
-      {
-        pcColCU->getMvField( pcColCU, uiAbsPartAddrBase, REF_PIC_LIST_1, cMvFieldBaseColCU[1] );
-        scaleBaseMV( pcMvFieldNeighbours[(iCount<<1)+1], cMvFieldBaseColCU[1] );
-      }
-
-      if( puhInterDirNeighbours[iCount] > 0 )
-      {
-        if ( mrgCandIdx == iCount )
+      if( pcColCU && pcColCU->isIntraBL( uiAbsPartAddrBase ) )
+      {
+        pcColCU = NULL;
+      }
+#endif
+
+      if(pcColCU && !pcColCU->isIntra( uiAbsPartAddrBase ) )
+      {
+        abCandIsInter[iCount] = true;
+
+        // get interDir
+        puhInterDirNeighbours[iCount] = pcColCU->getInterDir( uiAbsPartAddrBase );
+
+        pcMvFieldNeighbours[(iCount << 1)].setMvField( TComMv(0,0), -1);
+        pcMvFieldNeighbours[(iCount << 1) + 1].setMvField( TComMv(0,0), -1);
+
+        if( puhInterDirNeighbours[iCount] & 1 )
         {
-          return;
+          pcColCU->getMvField( pcColCU, uiAbsPartAddrBase, REF_PIC_LIST_0, cMvFieldBaseColCU[0]);
+          scaleBaseMV( pcMvFieldNeighbours[iCount<<1], cMvFieldBaseColCU[0] );
         }
-        iCount ++;
+
+        if ( getSlice()->isInterB() && puhInterDirNeighbours[iCount] & 2 )
+        {
+          pcColCU->getMvField( pcColCU, uiAbsPartAddrBase, REF_PIC_LIST_1, cMvFieldBaseColCU[1] );
+          scaleBaseMV( pcMvFieldNeighbours[(iCount<<1)+1], cMvFieldBaseColCU[1] );
+        }
+
+        if( puhInterDirNeighbours[iCount] > 0 )
+        {
+          if ( mrgCandIdx == iCount )
+          {
+            return;
+          }
+          iCount ++;
+        }
       }
     }
Index: /branches/SHM-2.1-dev/source/Lib/TLibCommon/TypeDef.h
===================================================================
--- /branches/SHM-2.1-dev/source/Lib/TLibCommon/TypeDef.h	(revision 209)
+++ /branches/SHM-2.1-dev/source/Lib/TLibCommon/TypeDef.h	(revision 210)
@@ -105,9 +105,7 @@
 
 // Hooks
-#if !AVC_BASE || AVC_SYNTAX
 #define SVC_MVP                          1      ///< motion hook for merge mode as an example
-#if !AVC_SYNTAX
+#if !AVC_BASE && !AVC_SYNTAX
 #define SVC_BL_CAND_INTRA                0      ///< Intra Base Mode Prediction hook as an example 
-#endif
 #endif
 
Index: /branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.cpp
===================================================================
--- /branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.cpp	(revision 209)
+++ /branches/SHM-2.1-dev/source/Lib/TLibDecoder/TDecTop.cpp	(revision 210)
@@ -1134,5 +1134,6 @@
         if( nalu.m_layerId == 1 && pBLPic->getPicYuvRec() == NULL )
         {
-          TComSPS* sps = new TComSPS();
+          // using EL SPS with spsId = 1
+          TComSPS* sps = m_parameterSetManagerDecoder[nalu.m_layerId].getPrefetchedSPS(1);
           Int  numReorderPics[MAX_TLAYER];
           Window &conformanceWindow = sps->getConformanceWindow();
